View Full Version : sum بر اساس group by دلخواه
sadaf_
چهارشنبه 15 آذر 1391, 16:15 عصر
با سلام
یک فیلدی را sum انجام دادم حالا می خوام sum بر اساس فیلدهای دیگری صورت بگبره
مشکل من با select تو در تو حل می شه ولی خیلی سرعتش پایین میاد
در همون select جمع فیلدی که می خوام را بر اساس group by مورد نظر انجام بدم
چطوری می شه sum () multy group by انجام داد؟
ali ghaemi
چهارشنبه 15 آذر 1391, 19:16 عصر
می تونید از دستور GROUPING SETS استفاده کنید
baktash.n81@gmail.com
شنبه 18 آذر 1391, 07:36 صبح
بهتره برای اینکه جواب مناسبتری دریافت کنید Query تون رو اینجا قرار بدید ... و مثال بزنید
sadaf_
شنبه 18 آذر 1391, 19:14 عصر
به عنوان مثال
SELECT St#, SUM(Grade) AS Grade
FROM dbo.Enroll
GROUP BY St#
این دستور جمع نمرات دانش آموزان را در خروجی نمایش می دهد
حالا من در همین select می خوام جمع همه دانش آموزان را در ستونی دیگر نمایش بدم
بدون اینکه از Select تو در تو استفاده کنم و در همان ستون تعیین کنم که جمع نمرات بر اساس group by مورد نظرم انجام بشه
مثلا groupby بر اساس نام درس
البته این هم بگم که رکوردها تکراری می شوند اما اشکال نداره
مهم جمع شدن بر حسب group by جدید هستش البته در همین select
حمیدرضاصادقیان
شنبه 18 آذر 1391, 22:29 عصر
سلام.
پیشنهاد میکنم اینجا (http://blogs.msdn.com/b/craigfr/archive/2007/10/11/grouping-sets-in-sql-server-2008.aspx) رو نگاهی بندازید.
sadaf_
دوشنبه 20 آذر 1391, 17:07 عصر
لطفا بیشتر راهنمایی کنید
زبان انگلیسی خوب بلد نیستم
اگر یک مثال باشه بهتر متوحه می شم
ممنون
sadaf_
چهارشنبه 22 آذر 1391, 16:39 عصر
من از این دستور استفاده می کنم
SELECT EmpId, Yr, SUM(Sales) AS Sales
FROM Sales
GROUP BY ROLLUP(EmpId, Yr)
اما خطای زیر را بخ من نمایش می ده
Msg 195, Level 15, State 10, Line 20
'ROLLUP' is not a recognized built-in function name.
منظورش چیه؟
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.