من میخوام تو select آخرین نفری که اضافه شده رو نشون بده ولی با این دستورم بهم ارور میده
select TLname,TName from Account whereMAX(ID)
نمیدونم درست توضیح دادم یا نه
Printable View
من میخوام تو select آخرین نفری که اضافه شده رو نشون بده ولی با این دستورم بهم ارور میده
select TLname,TName from Account whereMAX(ID)
نمیدونم درست توضیح دادم یا نه
سلام.شما اینجوری باید بنویسید.
select TLname,TName,max(id) from Account
موفق باشید
به من یه همچین اروری میدهColumn 'TLname' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
شما اول بايد Max رو بدست بياريد بعد ميتونيد توي دستور نمايش بديد
Declare @Max bigint
Select @Max = Max(ID) from Account
Select TLname, TName, @Max as MaxID from Account
اين دستور كنار تمام نام ها بزرگترين ID رو نمايش ميده.
ولي اگر ميخوايد به ازا هر نام بزرگترين ID اون نام رو داشته باشيد به صورت زير ميتونيد اين كار رو انجام بديد
Select TLname, TName, Max(ID) as MaxID from Account Group by TLname, TName
سلام،
SELECT *
FROM TABLE2
WHERE ID = (SELECT Last(ID) FROM TABLE2);
کد بالا آخرین رکورد وارد شده رو بر می گردونه صرفنظر از اینکه ID بزرگترین هست یا نه اما کد پایین رکوردی رو که ID اون ماکزیمم هست رو بدون توجه به اینکه کدوم رکورد آخرین بار وارد شده بر می گردونه:
SELECT *
FROM TABLE2
WHERE ID = (SELECT Max(ID) FROM TABLE2);
:قلب: .Ideas are everything, Microsoft Corporation
این کد دستور هم بد نیست :
SELECT TOP 1 *
FROM Table1
ORDER BY ID DESC
قبل هر چيز معذرت ميخوام من اصلا سوال رو نخوندم و متن خطايي كه گفته بوديد رو نگاه كردم!!:گیج:
SELECT TOP 1 * FROM Table1 ORDER BY ID DESC
به هيچ وجه اين روش توصيه نميشه چون عمليات مرتب سازي سربار بسيار زيادي نسبت به يك جستجو داره.
روش دوستمون tooraj_azizi_1035 هم درسته كه كار ميكنه ولي چون به ازا هر ركورد يك محاسبه MAXداريم يه ذره سربار داره.:چشمک:
روش پيشنهادي من به اين صورت
Declare @Max bigint
Select @Max = Max(ID) from Account
Select * from Account ID = @MAX
سلام،
دوست عزیز فکر نمی کنم که موتور SQL Server وقتی رکوردهایی رو می خواد از یه جدول انتخاب کنه به ازاء هر رکورد محاسبات موجود در قسمت WHERE رو انجام بده چون این قسمت حتی می تونه قبل از خود SELECT پردازش بشه چون وابستگی به اون نداره در حالی که SELECT به مقدار موجود در WHERE وابستگی داره و موتور Query Optimizer اون دو رو نمی تونه به صورت Parallel اجرا کنه. در ضمن کد من دارای دو SELECT و کد شما هم دارای دو کد SELECT هست که با هم برابرند. امیدوارم واضح گفته باشم. :چشمک: