PDA

View Full Version : سوال: نشان دادن جمع فروش براساس تاريخ



Iran58
شنبه 03 دی 1390, 07:48 صبح
سلام
دو تا جدول دارم كه براساس آنها مي خواهم يك گزارش بگيرم بشرح زير
هرگاه نام شهر و تاريخ آغاز و پايان را وارد كردم جمع كل كتاب فروش رفته در آن شهر را به من نمايش بدهد كوئري زير را نوشته ام

SELECT agent.Cityname, Sum(sell.soldqty) AS SumOfsoldqty
FROM agent RIGHT JOIN sell ON agent.sellagentID = sell.agentid
GROUP BY agent.Cityname, sell.solddate
HAVING (((agent.Cityname)=[نام شهر را واردنماييد]) AND ((sell.solddate) Between [ت آغاز] And [ت پايان]));

اما يك مشكل دارم آنهم اين است كه جمع كلي به من نمايش نمي دهدوهر تاريخ را در يك سطر نمايش مي دهد(تاريخ نبايد نمايش داده شود فقط براي رساند منظور دراين تصوير نمايش داده شده است)
براي حل اين مشكل چه تغييري بابد در كدم ايجاد كنم
باتشكر
Query1 شهر SumOfsoldqty solddate تهران 2 1390/09/01 تهران 7 1390/09/02 تهران 4 1390/09/03 تهران 0 1390/09/04 تهران 1 1390/09/05 تهران 1 1390/09/06 تهران 15 1390/09/07 تهران 35 1390/09/08 تهران 45 1390/09/09 تهران 75 1390/09/10 تهران 0 1390/09/11 تهران 25 1390/09/12 تهران 65 1390/09/13 تهران 58 1390/09/14 تهران 28 1390/09/15 تهران 45 1390/09/16 تهران 47 1390/09/17 تهران 35 1390/09/18 تهران 25 1390/09/19 تهران 13 1390/09/20

payman_xxp
شنبه 03 دی 1390, 09:40 صبح
سلام
دو تا جدول دارم كه براساس آنها مي خواهم يك گزارش بگيرم بشرح زير
هرگاه نام شهر و تاريخ آغاز و پايان را وارد كردم جمع كل كتاب فروش رفته در آن شهر را به من نمايش بدهد كوئري زير را نوشته ام

SELECT agent.Cityname, Sum(sell.soldqty) AS SumOfsoldqty
FROM agent RIGHT JOIN sell ON agent.sellagentID = sell.agentid
GROUP BY agent.Cityname, sell.solddate
HAVING (((agent.Cityname)=[نام شهر را واردنماييد]) AND ((sell.solddate) Between [ت آغاز] And [ت پايان]));

اما يك مشكل دارم آنهم اين است كه جمع كلي به من نمايش نمي دهدوهر تاريخ را در يك سطر نمايش مي دهد(تاريخ نبايد نمايش داده شود فقط براي رساند منظور دراين تصوير نمايش داده شده است)
براي حل اين مشكل چه تغييري بابد در كدم ايجاد كنم
باتشكر
Query1 شهر SumOfsoldqty solddate تهران 2 1390/09/01 تهران 7 1390/09/02 تهران 4 1390/09/03 تهران 0 1390/09/04 تهران 1 1390/09/05 تهران 1 1390/09/06 تهران 15 1390/09/07 تهران 35 1390/09/08 تهران 45 1390/09/09 تهران 75 1390/09/10 تهران 0 1390/09/11 تهران 25 1390/09/12 تهران 65 1390/09/13 تهران 58 1390/09/14 تهران 28 1390/09/15 تهران 45 1390/09/16 تهران 47 1390/09/17 تهران 35 1390/09/18 تهران 25 1390/09/19 تهران 13 1390/09/20

سلام
در سطر سوم sell.solddate رو از گروپ بای حذف کنید.
موفق باشید

Iran58
شنبه 03 دی 1390, 09:58 صبح
سلام
دستور شما را اجرا كردم به مشكل زير برخورد كردم
79590

ramin005
شنبه 03 دی 1390, 12:22 عصر
دوست عزیز برای اینکه بتونید گزارشهای حرفه ای تهیه کنید و مهمتر از آن برای اینکه بتونید در آینده گزارشات پیچیده تر و قدرتمندتری بسازید حتما از VB کد برای نوشتن گزارش استفاده کنید نه کوئری
میتونید از این مثال (http://barnamenevis.org/showthread.php?319140-%D9%85%D8%B4%DA%A9%D9%84-%DA%AF%D8%B2%D8%A7%D8%B1%D8%B4-%D8%A8%D8%B1-%D8%A7%D8%B3%D8%A7%D8%B3-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE%21) هم کمک بگیرید

payman_xxp
شنبه 03 دی 1390, 12:31 عصر
سلام
دستور شما را اجرا كردم به مشكل زير برخورد كردم
79590

سلام
در پاسخ قبلی به دستور having دقت نکردم....:اشتباه:
بجاش از دستور شرطی where استفاده کنید، دستور گروپ بای رو بعداز سطر شرط وارد کنید.
موفق باشید

Iran58
شنبه 03 دی 1390, 14:34 عصر
سلام
مشكل با كد زير حل شد

SELECT agent.Cityname, Sum(sell.soldqty) AS SumOfsoldqty
FROM agent RIGHT JOIN sell ON agent.sellagentID = sell.agentid
where (((agent.Cityname)=[نام شهر را واردنماييد]) AND ((sell.solddate) Between [ت آغاز] And [ت پايان]))
GROUP BY agent.Cityname;

likemoon
چهارشنبه 25 اردیبهشت 1392, 07:47 صبح
چطور مشکلتون با این کد حل شد؟؟؟
شما از فیلدی در شرط استفاده کردید که سلکتش نکردید! مطمئنید جواب داد؟ منم همین مشکل رو دارم