PDA

View Full Version : جایگزین First , Last



mohammadjp
شنبه 17 تیر 1391, 17:43 عصر
در access هنگام گروپ کردن نتیجه کوئری میتوان با استفاده از First یا Last اولین یا اخرین نتیجه را در آن گروه استخراج کرد. در SQL server فقط MIN ,MAX, SUM, Count و چند تابع دیگر وجود دارد ولی معادلی برای First یا Last ذکر نشده است.

دوستان چه راه حلی پیشنهاد میکنند؟

ASKaffash
یک شنبه 18 تیر 1391, 06:54 صبح
سلام
شما دستور Select مورد نظر را به Access قرار دهید تا بتوان معادل T-SQL را قرار دارد

mohammadjp
یک شنبه 18 تیر 1391, 09:34 صبح
به عنوان مثال کوئری زیر به ازای هر کد ماشین اولین شماره پلاک داده شده به ماشین را نشان میدهد
SELECT automobilcode, First(automobilno) AS FirstOfautomobilno
FROM automobiles
GROUP BY automobilcode;

از عبارت TOP 1 نمیتوان استفاده کرد زیرا تنها یک رکورد را برمیگرداند ولی ما میخواهیم به ازای هر ایتم گروه اولین رکورد آن را برگرداند

Reza_Yarahmadi
یک شنبه 18 تیر 1391, 18:27 عصر
در صورتیکه فیلدی بصورت Identity داشته باشید میتونید بصورت زیر عمل کنید
Select *
From tbl
Where ID IN (Select MIN(ID) From tbl Group By YourField)

در غیر اینصورت اگر از SQL Server 2005 به بالا استفاده میکنید
With tbl As(
Select
Row_Number() Over(Order By YourField) RowID,
*
From
YourTable)
Select *
From tbl
Where RowID IN (Select MIN(RowID) From tbl Group By YourField)

ASKaffash
دوشنبه 19 تیر 1391, 07:09 صبح
سلام
آیا در یک گروه مگر کوچکترین اولین و آخرین بزرگترین نیست ؟


Select A,Min=Min(B),Max=Max(B)
From T
Group By A
Order By A

در غیر اینصورت باید فیلد دیگری در هر گروه وجود داشته باشد که یک ترتیب را معین کند

baktash.n81@gmail.com
دوشنبه 19 تیر 1391, 09:25 صبح
احتمالا می تونید برای دستور Cross Apply هم جستجو کنید ...