PDA

View Full Version : مشکل در کوئری



mehdiebiram
جمعه 16 اردیبهشت 1390, 19:31 عصر
سلام دوستان
من 3 تا جدول دارم که یکیش شماره فاکتور نام مشتری و تاریخ خرید رو ذخیره می کنه
یکیش نام غذا و تعداد و اون یکی هم شماره فاکتور و مبلغ کل فاکتور
حالا من می خوام کل غذاهای فروخته شده امروز رو با تعدادش تو یه جدول نشون بدم
از کد زیر استفاده می کنم
اما مشکل اینجاست که اگر تو 2 تا فاکتور مجزا از یک غذا داشته باشیم این غذا 2 بار تکرار میشه
میخوام یه ستون نام غذا و ستون دیگه کل تعداد فروخته شده از این غذا در تاریخ امروز باشه
کوئری که الان استفاده میکنم اینه:

Select Food.Name, Quantity
From Food,Invoice,ItemInvoice
where Food.ID=ItemInvoice.ItemID and Invoice.ID=ItemInvoice.InvoiceID and Invoice.Date like '1390-02-%';

ممنون میشم راهنمایی کنید

حمیدرضاصادقیان
جمعه 16 اردیبهشت 1390, 23:20 عصر
سلام.
اگر میتوانید در ساختار جداول تغییر ایجاد کنید.زیرا جدول سوم که شامل مبلغ کل فاکتور هست اضافی هست و میتواند در همون جدول اول که شامل تاریخ خرید و شماره فاکتور هست کافی می باشد.

حالا می رسیم به کوئری مورد نظر :


Select Food.Name, Sum(Quantity)
From Food Inner join ItemInvoice
On Food.Id=ItemInvoice.ItemId
Inner Join
Invoice
On Invoice.Id=ItemInvoice.InvoiceId
Where Invoice.Date>='1390-02-01' and Invoice.Date<='1390-02-31'
Group By Food.Name

mehdiebiram
شنبه 17 اردیبهشت 1390, 02:50 صبح
یه سئوال دیگه
این تاریخی که شما الن گذاشتین نوع فیلدش Date بوده یا Nvarchar ؟؟؟؟

حمیدرضاصادقیان
شنبه 17 اردیبهشت 1390, 11:24 صبح
سلام.
شما از نوع Nvarchar استفاده کردید منم به همون شکل نوشتم بدون استفاده از LIKE.