PDA

View Full Version : تعداد خرید مشتریان با یک دستور Select



Chabok
جمعه 16 اردیبهشت 1384, 22:02 عصر
با سلام

فرض می کنیم که دو Table داریم که یکی مشتریان و مشخصات و کد آنها ست و دیگری
خرید مشتریان با ثبت کد آن هاست

حال اگر بخواهیم دستوری بنویسیم که هر مشتری با ذکر مشخصات و تعداد خرید آن را نمایش
دهیم چه باید کرد ؟

دستور زیر فقط کد مشتری و تعداد خرید را مشخص می کند :
Select Count(Moshtari.CodeMosh) , Kharid.CodeMosh from Moshtari,Kharid Where Moshtari.CodeMosh=Kharid.CodeMosh
Group by Kharid.CodeMosh

ولی اگر بخواهیم نام مشتری را نیز نمایش دهیم چه کاری باید انجام داد
اگر به Table های دستور بالا یک فیلد دیگر مثلا Moshtari.Nam اضافه کنیم Error می دهد

لطفا یه کمکی بکنید
با تشکر

یاشار
شنبه 17 اردیبهشت 1384, 05:03 صبح
این رو امتحان کنید.



SELECT m.CodeMosh , m.Nam ,

(SELECT COUNT( k.Code )

FROM kharid k

WHERE m.CodeMosh = k.CodeMosh) as TedadKharid


FROM moshtari m

GROUP BY TedadKharid

hadi2345
سه شنبه 20 اردیبهشت 1384, 17:30 عصر
آقا یاشار آیا راه دیگری هم وجود دارد؟

titbasoft
سه شنبه 20 اردیبهشت 1384, 18:34 عصر
راه دیگرش نوشتن join که عملا همین اتفاق میافته (هر دو به یک شکل اجرا می شن) چیزی که آقا یاشار نوشته اند طبق استانداردهای ANSI است و join بیشتر در T-SQL استفاده میشه
مثال:

SELECT m.CodeMosh , m.Nam , SELECT COUNT( k.Code ) TedadKharid
FROM moshtari m join kharid k on m.CodeMosh = k.CodeMosh
GROUP BY m.CodeMosh , m.Nam

البته در کد آقا یاشار GROUP BY TedadKharid هم باید به GROUP BY m.CodeMosh , m.Nam تصحیح بشه

یاشار
چهارشنبه 21 اردیبهشت 1384, 03:26 صبح
درسته، من می‌خواستم که مشتری‌ها بر اساس تعداد خرید ردیف بشوند، و query رو چک نکردم.


GROUP BY m.CodeMosh , m.Nam
ORDER BY TedadKharid