ورود

View Full Version : سوال: یک سلکت که جواب ها را در یک ردیف نشون بده



rezaei manesh
شنبه 06 مهر 1387, 17:16 عصر
سلام
من یک جدول دارم که یعک تعداد شماره پرسنلی هست که تکرار هم داره و یک فیلد دیگه که اون کد گروهکاری هست .حالا من می خوام اولا گروه های غیر تکراری رو بدست بیارم که با دیستینک می شه بعد می خوام توسط این کدگروه اسم اونو ها رو از جدول دیگه بردارم و در یک خط نشون بدم با یه جدا کننده

personid groupid
1 1212
2 1212
5 1212
5 1212

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

صبحکار,عصرکار،شبکار 1212

اون یکی هم که تکراری هست حذف شه
حالا این رو برای تعداد زیادی از پرسنل باید بدست بیارم
چطور سلکت بزنم؟

AminSobati
یک شنبه 07 مهر 1387, 10:11 صبح
سلام دوست عزیزم،
شما به Cross-Tan Report احتیاج دارید. در نسخه 2005 میشه از PIVOT استفاده کرد. در 2000 خیلی سر راست نیست

rezaei manesh
یک شنبه 07 مهر 1387, 15:12 عصر
سلام
من از 2005 برای این پروژه استفاده می کنم
از pivot خواستم استفاده کنم اما نتونستم من یک کد نوشتم مثل این اما می دونم که کامل نیست یه جای کار می لنگه


SELECT DISTINCT DayWork.PersonId ,GrpName.GName
FROM DayWork INNER JOIN
PrjRuleSplit AS GrpName ON DayWork.WorkGrpId = GrpName.WorkGrpId
WHERE (DayWork.DDATE BETWEEN @SDate AND @EDate)
PIVOT DayWork.PersonId

چجوری باید بفهمونم که با ویلگول نام ها رو جدا کنم و در یک ستون نمایش بده
من می خوام خروجی من 2 ستون باشه به ازای هر شمار پرسنل یک ستون نام گروه هم داشته باشه که می تونه شامل یک یا چند نام گروه باشه که در کنار هم قرار داده شده اند
؟؟؟

AminSobati
یک شنبه 07 مهر 1387, 20:47 عصر
این لینک رو ببینید آیا به خواسته شما مربوط میشه؟

http://www.barnamenevis.org/forum/showthread.php?t=66619

rezaei manesh
سه شنبه 09 مهر 1387, 10:56 صبح
سلام ممنون
دیدم استاد دقیقا مشکل من هم همونه اما نمی تونم گروه بندی کنم ؟
می تونم از روش 2000 استفاده کنم اما به گفته شما کند میشه و چون حجم محاسبات من بالاست باید بهترین رو انتخاب کنم.
لطفا در همون تاپیک برای اینکه تاپیک موضوع یکسان داره ادامه میدیم
اگه می شه در مورد User Defined Aggregate یکم توضیح بدین .
با تشکرات فراوان