ققنوس در ایران
جمعه 07 مرداد 1390, 17:27 عصر
سلام!
می خواستم بدونم که اگر توی یه کوئری هم عبارت where رو داشته باشیم هم Group by و Having اول کدوم یکی اعمال می شه؟؟
فرض کنیم که 4 تا جدول به صورت زیر داریم:
(S(s#, sname, status, city
P(p#, pname, city, weight, color
(J(j#, jname, city
(Spj(s#,p#, j#, qty
حالا سوال اینه که:
شماره پروژه هایی که تمام قطعات آنها را s1 تهیه کرده است بیابید.
جواب من اینه:
#Select j
From spj
(Where j# in (select j# from spj where s#=1
#Group by j
Having count(distinct s#)=1
مقادیر زیر رو برای spj وارد می کنیم :
;(Insert into spj values (1,1,1),(1,2,1),(2,2,1),(2,1,2),(2,2,2),(1,2,3),(2 ,3,3),(2,6,3),(3,2,4
اون وقت اگه اول گروه بندی و Having اعمال بشه بعد شرط جواب ما تهیِ و اگه اول شرط اعمال بشه بعد having , group اونوقت جواب 1و3 هستش.
می خواستم بدونم که اگر توی یه کوئری هم عبارت where رو داشته باشیم هم Group by و Having اول کدوم یکی اعمال می شه؟؟
فرض کنیم که 4 تا جدول به صورت زیر داریم:
(S(s#, sname, status, city
P(p#, pname, city, weight, color
(J(j#, jname, city
(Spj(s#,p#, j#, qty
حالا سوال اینه که:
شماره پروژه هایی که تمام قطعات آنها را s1 تهیه کرده است بیابید.
جواب من اینه:
#Select j
From spj
(Where j# in (select j# from spj where s#=1
#Group by j
Having count(distinct s#)=1
مقادیر زیر رو برای spj وارد می کنیم :
;(Insert into spj values (1,1,1),(1,2,1),(2,2,1),(2,1,2),(2,2,2),(1,2,3),(2 ,3,3),(2,6,3),(3,2,4
اون وقت اگه اول گروه بندی و Having اعمال بشه بعد شرط جواب ما تهیِ و اگه اول شرط اعمال بشه بعد having , group اونوقت جواب 1و3 هستش.