PDA

View Full Version : چند تا چند تا جدا کردن ریف های به دست آمده از یک select براساس دوفیلد خاص



sama552
دوشنبه 22 فروردین 1390, 11:21 صبح
با سلام
من یکselect دارم که این خروجی رو برای من نمایش میده
11566 101 121 6
11567 101 121 6
11568 101 121 6
11569 101 121 6
11581 101 121
11566 95 121 6
11567 95 121 6
11568 95 121 6
11569 95 121 6
11571 95 121 6
11572 95 121 6

حالا من هدفم اینه که بر اساس دو فیلد وسط اینها رو 3 تا 3تا جدا کند یعنی یک همچین خروجی ای رو به من بدهد



11567 101 121 6
11568 101 121 6
11569 101 121 6

11566 95 121 6
11567 95 121 6
11568 95 121 6

ممنون میشم اگر کسی راهنمایی کنه

محمد سلیم آبادی
دوشنبه 22 فروردین 1390, 14:13 عصر
حد اقل اسم ستونهایتون رو می گفتین. و اینکه بر چه اساسی بایستی سه سطر به ازای هر گروه انتخاب بشه؟

sama552
سه شنبه 23 فروردین 1390, 09:44 صبح
سلام دوستان من خودم تونستم جوابش رو پیدا کنم
باید از ROW_NUMBER() OVER(PARTITION BY استفاده کنیم
select ROW_NUMBER() OVER(PARTITION BY Card.course_Id,relationstep.student_Id ORDER BY dbo.Card.Id desc) as rcount,card.Id,relationstep.student_Id,Card.course _Id,relationstep.step
from dbo.Card INNER JOIN dbo.RelationStep ON dbo.Card.Id = dbo.RelationStep.Card_Id
where rcount<4
این query براساس گروهبندی یعنی براساس student_Id,course_Id چهار تا چهار تا جدا میکند

محمد سلیم آبادی
چهارشنبه 24 فروردین 1390, 23:04 عصر
این کدی که ارسال کردی نمی تونه بدرستی اجرا بشه. چرا که در قسمت where ستون rcount شناخته نخواهد بود.