PDA

View Full Version : نوشتن Query



mehrdad2025
دوشنبه 31 تیر 1392, 13:49 عصر
با سلام
من 3 تا جدول دارم که توسط کلید به هم مرتبط هستند.
حالا می خوام یک کوئری بنویسم که توی یک سطر (,Max(Time) , Min(Time ,
(EndTime.[اوقات فراغت])SUM,
(StartTime.[اوقات فراغت])SUM
را بده.البته با Group By این کار رو کردم ولی او دو تا فیلد Sum رو دو برابر می کنه.
لطفا کمک کنید.
با تشکر107722

Ghanian
دوشنبه 31 تیر 1392, 15:10 عصر
به نام خدا
سلام عليكم
چون در ضرب كارتزين بين جداول، ركوردهايي كه شما روي آنها عمليات جمع انجام مي‌دهيد، ممكن است تكرار شوند بايد قبل از اتصال جداول به هم شما جمع را حساب كنيد. يك راه حل استفاده از ساب كوئري است:

Select S.Year, Max(A.Time), Min(A.Time), dt1.SumStart, dt1.SumEnd from [سال مالي] S inner join [عمليات اصلي] A on S.Year = A.Year inner join
(Select Year,Sum(StartTime) as SumStart, sum(EndTime) as SumEnd from [اوقات فراغت] group by Year) as dt1 on S.Year = dt1.Year

mehrdad2025
دوشنبه 31 تیر 1392, 20:32 عصر
دستت درد نکنه.عالی بود.فکر می کردم یه روشی باید باشه ولی اصلا فکرشو نمی کردم به این شکل Query نوشته بشه!من فکر می کردم Inner Join رو فقط با جدول می شه حل کرد ولی شما متفاوت عمل کردین.به هر حال تشکر.مرسی.
مهرداد از تبریز