View Full Version : سوال: مقایسه دو بازده زمانی توسط یک کوئری
fahimi
یک شنبه 04 دی 1390, 18:39 عصر
آیا امکان اینکه با یک کوئری دو بازده زمانی را بدست آورد
برای مثال :فروش شهریور سال 90 و شهریور سال 89 یک شرکت را مقایسه کنید
f_date[string],nam_kala-string],tedad[integer]:list field
نام کالا شهریور89 شهریور 90
----------------------------------------------------
صفحه کلید ---------- 3 ----------------- 5
موس -----------------10 ----------------15
صفحه نمایش --------11-----------------8
majid_ramak
یک شنبه 04 دی 1390, 19:03 عصر
SELECT NAM_KALA, ISNULL(TEDAD, 0) TEDAD, (SELECT ISNULL(TEDAD, 0) FROM TABLE T2 WHERE T2.FDATE = 89 AND T2.NAM_KALA = T1.NAM_KALA) PRIORTEDAD
FROM TABLE T1
WHERE T1.FDATE = 90
fahimi
دوشنبه 05 دی 1390, 17:04 عصر
با تشکر کل اطلاعات در تیبل فروش میباشد و کاربرد T2 برای من نامشخص است ؟
وقعیتش این است که من با روش پیچدهی این گزارش ساختم ولی بنظرم اصولی نیست
در فرم دو کوئری گذاشتم
با کوئری 1 مجموع فروش ماه شهریور نود را بازیابی کردم
select name kala,sum(tedad)as teda1 from forosh where f_date between '1390/06/01' and '1390/06/31' group by name_kala
کوئری دوم
select name kala,sum(tedad)as teda2 from forosh where f_date between '1389/06/01' and '1389/06/31' group by name_kala
بعد یک تیبل temp ساختم با فیلدهای nam_kala,teda1,teda2
کلیه اطلاعات بازیابی شده در کوئری های 1و 2 در تیبل کپی کردم
و با کوئری جدیدی اطلاعات به شکل بالا بازیابی کردم
select nam kala,sum(tedad1)as shahrivar90 ,sum(tedad2)as shahrivar89 from forosh group by name_kala
az-navaei
سه شنبه 06 دی 1390, 20:42 عصر
select name kala,sum(tedad)as Forush90,(selcet sum(tedad) as forush90 from forosh f2 where f2.name_kala=f1.name_kala and f_date between '1389/06/01' and '1389/06/31' group by name_kala) as Forush89
from forosh f1 where f_date between '1390/06/01' and '1390/06/31' group by name_kala
تقريبا همونه كه majid_ramak نوشتن فقط كاملتر
اين روش کوئری در کوئری است و به ازاي هر ركورد مجدد يك کوئری از همان بانك فروش ولي با شرطي متفاوت ميگيره.
تست كنيد ببينيد نتيجه درسته يا نه
فقط مشكلي كه داره اين هست كه اگر كالايي را در سال 90 فروش نداشته باشه فروش آنرا در سال 89 هم نمياره
fahimi
پنج شنبه 08 دی 1390, 16:38 عصر
با کمی تغییر در اکسس جواب داد متاسفانه من از dbisam استفاده میکنم و ظاهر dbisam از کوئری تو در تو پشتبانی خوبی نمی کند اگر دوستان در این خصوص تجربه مفیدی دارند لطفا کند من را راهنمایی کند
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.