ايران ويج

نسخه‌ی کامل: select های تو در تو!
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
به نام خدا
سلام
اگه بخوام از اول اول بگم:
من یک برنامه نوشتم با دلفی که دیتا بانک اکسس هست و از کوئری ها استفاده کردم.
برنامه من برای یک کتابفروشیه!
مثلا برای پیدا کردن کتاب های خریده شده و فروخته شده از نشر سایه من این همــــــــه! کوئری رو جداگانه نوشتم و از نتیجه آخری استفاده میکنم:

قسمت اول: که از جدول کتب ورودی تمام کتاب های خریداری شده از نشر سایه رو در میاره: نام کوئری: vsaye
کد:
SELECT *
FROM vorud
WHERE dahande='نشر سايه';

حالا اینجا تعداد هر کتاب مشخص میشه (کتاب های ورودی به کتاب فروشی) نام کوئری :fvsaye
کد:
SELECT DISTINCT vsaye.name, Sum(vsaye.tedad) AS t, vsaye.vahed
FROM vsaye
GROUP BY vsaye.name, vsaye.vahed
HAVING (((Sum(vsaye.[tedad]))>-1));

میریم سراغ فروش

قسمت دوم : که از جدول خروجی کتاب هایی که با نام نشر سایه فروخته شدن رو در میاریم: نام کوئری : saye
کد:
SELECT *
FROM khoruj
WHERE girande='نشر سايه';

اینجا تعداد کتب فروخته شده محاسبه میشن! (ای خداااا) نام کوئری: fksaye
کد:
SELECT DISTINCT saye.name, sum(tedad) AS teedad
FROM saye
GROUP BY saye.name
HAVING (((sum(tedad))>-1));

و این هم قسمت سوم که جوین دو قسمت بالاست:

کد:
SELECT fvsaye.name, fvsaye.t, fvsaye.vahed, fksaye.teedad
FROM fvsaye INNER JOIN fksaye ON fvsaye.name = fksaye.name;

من چطور میتونم این همه کد رو در یک کد اس کیو ال خلاصه کنم؟ و نتیجه قسمت آخر رو بگیرم؟
ممنون و سپاسگذار
سلام اولا یکم کویری ها رو بد نوشتی همون اولی رو ببین باید به جای استفاده از استرینگ از یه عدد استفاده کنی اینجوری به دیتابیس فشار کمتری می یاد
کد:
SELECT * FROM vorud WHERE dahande='1';
اینو ببین
کد:
SELECT vsaye.name, Sum(vsaye.tedad) AS t, vsaye.vahed FROM vorud WHERE dahande='نشر سايه' GROUP BY name, vahed
uniuon
SELECT saye.name, sum(tedad) AS teedad, 1 FROM khoruj WHERE girande='نشر سايه' GROUP BY name;