View Full Version : استفاده از گروه بندی
sahra_777
سه شنبه 04 مرداد 1384, 13:53 عصر
با سلام و خسته نباشید...
من میخواستم گزارشی در asp.netتهیه کنم که بر اساس فیلدهایی خاص گزارش بگیرد که تا اینجا مشکلی نیست ولی میخوام جمع کل نیز به تفکیک نام اداره بعد از هر اداره قرار بگیرد این دستور select رو کجا باید قرار بدم یعنی کجاباید بگم که جمع کل را حساب کند
AminSobati
سه شنبه 04 مرداد 1384, 16:22 عصر
دوست عزیزم،
برای مثال، جدول Products در دیتابیس Northwind رو مثال میزنیم. فیلد UnitsInStock نشون میده از هر جنس، چه مقدار در انبار موجوده. حالا اگر بخواهیم جمع موجودی کالاها رو بر حسب دسته بندی کالا(CategoryID) بدست بیاریم:
SELECT CategoryID, SUM(UnitsInStock) as 'Total'
FROM Products
GROUP BY CategoryID
به روش مشابه برای Query خودتون عمل کنین. توجه داشته باشین که اگر Formatهای خاصی در ارائه گزارش مد نظرتون هست، عمدتا توسط ابزارهای گزارش گیری انجام میشه(مثل Crystal Report)، نه صرفا توسط Queryها.
sahra_777
چهارشنبه 05 مرداد 1384, 13:39 عصر
ممنون از جوابتون
خوب منم همین گروه بندی رو که در crystal میشه انجام داد میخوام با استفاده از کوئری انجام بدم من group by استفاده کردم ولی گروه بندی درست انجام نشده یعنی بعضی جاها هنوز گروه تموم نشده count رو حساب کرده یا اینکه اصلا رکورد اول رو گروه بندی نکرده میخواستم ببینم این اشکال از چیه؟ ممنون میشم اگه زود جواب بدین
AminSobati
چهارشنبه 05 مرداد 1384, 18:41 عصر
اگر ممکنه Query رو پست کنین
sahra_777
شنبه 08 مرداد 1384, 08:16 صبح
cmd3 = New SqlCommand("SELECT SUM(change.qty) AS Expr2, SUM(change.t_u_price) AS Expr3 FROM change,request_t1 where request_t1.date_sen like '%" & txt1.Text & "%' and doc_type like N'%" & ddl1.SelectedItem.Text & "%' and change.doc_no=request_t1.doc_no group by request_t1.edare ", con3)
sahra_777
شنبه 08 مرداد 1384, 11:26 صبح
با سلام
مشکل من اینه که میخوام فقط بر اساس یه فیلد گروه بندی کنم و اگه این امکان وجود داشته باشه مشکلم برطرف میشه
ببینید کوئری من اینه
select distinct edare,check_c,total_price,date_sen,date_mali FROM request_t1 where ..... group by edare,check_c,total_price,date_sen,date_mali
و میخوام این کوئری اینطوری بشه
select distinct edare,check_c,total_price,date_sen,date_mali FROM request_t1 where ..... group by edare
Kamyar.Kimiyabeigi
شنبه 08 مرداد 1384, 13:00 عصر
درود
group by فقط بر روی فیلدهایی اعمال میشه که select کردین یعنی نمیشه که 5 تا فیلد select کنین و 3 تاشو در group by بیارین
AminSobati
شنبه 08 مرداد 1384, 22:58 عصر
دوست عزیزم،
Query شما وقتی از Aggregate Operator ها (مثل Sum , Count ) استفاده نمیکنه، عملا Group By تاثیری مثل Distinct خواهد داشت و کار خاصی انجام نمیده.
پیشنهاد من اینه که مثالهای Books Online رو ببینین تا درک خوبی از کار Group By پیدا کنین. Query شما پیچیده نیست اما من دقیقا متوجه قصدتون نشدم.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.