ورود

View Full Version : ROLLUP



hsajj27
سه شنبه 19 خرداد 1388, 13:05 عصر
سلام
یه سوال درمورد دستور ROLLUP داشتم
وقتی ما از این دستور استفاده میکنیم و تعداد فیلدها رو توی دستور GROUP BY بیشتر میکنیم به تعداد سطرهای نتیجه کوری اضافه می شود . و سطر های تکراری ایجاد میشود.
چطور میتوان این مشکل را حل کرد ؟؟
خیلی ممنون:متفکر:

pooyamirzapour
چهارشنبه 20 خرداد 1388, 10:07 صبح
برای اینکه سطرهای تکراری در نتیجه کوئری نیایند میتوانید از DISTINCT استفاده کنید
SELECT DISTINCT Filed1,...FROM TABLE

AminSobati
چهارشنبه 20 خرداد 1388, 17:10 عصر
دوست عزیزم،
سطرهایی که به خاطر Rollup اضافه میشن کاربرد دارند. اگر از نظر شما اضافی محسوب میشن پس احتمالا به صورت اشتباه دارین از Rollup استفاده میکنین

hsajj27
جمعه 22 خرداد 1388, 20:15 عصر
با تشکر از دوستان
بگذارید یه کمی بیشتر توضیح بدم .

ما یه جدول به این شکل داریم :


madrak tozihat date qty name


علی 10 88/01/09 قققققققق lis
علی 6 88/01/09 صثقصثقص lis
رضا 50 88/05/10 صضضصث dip
رضا 44 88/05/11 ضصحجچجح dip
علی 88 88/02/18 ززززززززز lis
رضا 6 88/01/28 دتنانتانلیییی dip
علی 99 88/01/01 ضضضضضض lis



حالا ما این کوری رو اجرا میکنیم :


SELECT name,date,sum(qty),tozihat
FROM Table_1
GROUP BY name,date,tozihat WITH ROLLUP


و این هم نتیجه که خوب است :



رضا 88/01/28 6 دتنانتانلیییی
رضا 88/01/28 6 NULL
رضا 88/05/10 50 صضضصث
رضا 88/05/10 50 NULL
رضا 88/05/11 44 ضصحجچجح
رضا 88/05/11 44 NULL
رضا NULL 100 NULL
علی 88/01/01 99 ضضضضضض
علی 88/01/01 99 NULL
علی 88/01/09 6 صثقصثقص
علی 88/01/09 10 قققققققق
علی 88/01/09 16 NULL
علی 88/02/18 88 ززززززززز
علی 88/02/18 88 NULL
علی NULL 203 NULL
NULL 303 NULL NULL



اما وقتی فیلد madrak رو به select اضافه میکنیم تعداد سطرها زیاد میشود :


SELECT name,date,sum(qty),tozihat,madrak
FROM Table_1
GROUP BY name,date,tozihat,madrak WITH ROLLUP




رضا 88/01/28 6 دتنانتانلیییی dip
رضا 88/01/28 6 دتنانتانلیییی NULL
رضا 88/01/28 6 NULL NULL
رضا 88/05/10 50 صضضصث dip
رضا 88/05/10 50 صضضصث NULL
رضا 88/05/10 50 NULL NULL
رضا 88/05/11 44 ضصحجچجح dip
رضا 88/05/11 44 ضصحجچجح NULL
رضا 88/05/11 44 NULL NULL
رضا NULL 100 NULL NULL
علی 88/01/01 99 ضضضضضض lis
علی 88/01/01 99 ضضضضضض NULL
علی 88/01/01 99 NULL NULL
علی 88/01/09 6 صثقصثقص lis
علی 88/01/09 6 صثقصثقص NULL
علی 88/01/09 10 قققققققق lis
علی 88/01/09 10 قققققققق NULL
علی 88/01/09 16 NULL NULL
علی 88/02/18 88 ززززززززز lis
علی 88/02/18 88 ززززززززز NULL
علی 88/02/18 88 NULL NULL
علی NULL 203 NULL NULL
NULL 303 NULL NULL NULL


من میخوام که هر مورد در یک سطر باشد آیا می شود ؟؟؟
مثلا به جای این سه سطر :
علی 88/02/18 88 ززززززززز lis
علی 88/02/18 88 ززززززززز NULL
علی 88/02/18 88 NULL NULL

فقط این نتیجه نمایش داده شود :
علی 88/02/18 88 ززززززززز lis