PDA

View Full Version : انتخاب 3 تا از آخرین هر گروه



chaalesh
یک شنبه 23 اسفند 1388, 00:38 صبح
سلام
من یک جدول دارم که رکوردهای اون هر کدوم مربوط به یک گروهی هستند و مدام رکوردها زیاد میشه
حالا می خوام به ازای هر گروه 3 رکورد آخر گروه رو دربیارم
نمی دونم چه جوری این کار رو انجام بدم
ندونستم هم چی رو سرچ کنم

محمد سلیم آبادی
یک شنبه 23 اسفند 1388, 00:51 صبح
سلام،
متناسب به نسخه ی SQL Server ای که استفاده میکنید روشهای بسیار متنوعی وجود داره من در ادامه یک روش برای 2000 و یک روش برای 2005 و بالاتر می نویسم:

IN

SELECT *
FROM table_name AS t1
WHERE ID IN (SELECT TOP 3 ID FROM table_name AS t2
WHERE t1.GroupID = t2.GroupID
ORDER BY insert_date DESC)


Cross Apply

SELECT T.* FROM (SELECT DISTINCT GroupID FROM table_name) AS D
CROSS APPLY (SELECT TOP 3 *
FROM table_name AS t
WHERE D.groupID = t.groupID
ORDER BY insert_date DESC) AS T