PDA

View Full Version : راهنمایی برای گرفتن Query از این اطلاعات....



کامروا
یک شنبه 12 شهریور 1391, 20:10 عصر
سلام

فرض کنید جداول زیر رو دارم :

جدول مشتری :

http://up.vbiran.ir/images/voibyqnh8zbzc6pda4o.jpg

جدول سفارش :

http://up.vbiran.ir/images/v5f0pczxiox6tb0l9c3r.jpg


سوال :

حالا میخوام که مشتری هایی که بیشتر از 2 تا سفارش داشتن رو ببینم.
چطور ؟

تشکر

tooraj_azizi_1035
یک شنبه 12 شهریور 1391, 20:21 عصر
SELECT CustomerName ,COUNT(OrderID) AS Qty FROM Orders o INNER JOIN Customers c ON c.CustomerID=o.CutomerID
GROUP BY CustomerName HAVING COUNT(OrderID)>2

کامروا
یک شنبه 12 شهریور 1391, 21:45 عصر
تشکر به این شکل هم نوشتم کدوم بهینه تره؟


SELECT Customer.Cust_Name FROM Customer
WHERE (SELECT COUNT(*)>=2 FROM Order WHERE Order.Cust_Id = Customer.Cust_Id);

ASKaffash
دوشنبه 13 شهریور 1391, 07:55 صبح
سلام
کوئری جناب tooraj_azizi_1035 بهینه تر است چون مشتریانی که اصلا سفارش ندارند در کوئری درگیر نمی شوند و ازطرفی از Join بجای SubQuery استفاده شده است در ضمن عبارت COUNT(*)>=2 نادرست است باید انتهای SubQuery باشد