שאילתת MAX (ID) ב- SQL SERVER

shlomub

New member
שאילתת MAX (ID) ב- SQL SERVER

שלום, יש לי שאלה בעניין פונקציית MAX ב-SQL SERVER. ישנה טבלה tbl הכוללת ID בסדר רץ, שם וסטטוס.הטבלה נראית כך: ID Name Status א משה 1 ב אבי 2 ג רפי 3 ג משה 4 א אבי 5 ב רפי 6 אני מעוניין לשלוף לשם מסויים, למשל Moshe, רשומה עם הסטטוס הכי עדכני, לצורך העניין עם ה-ID הכי גבוה. השאילתא שאני מריץ: SELECT ID,Name, Status FROM tbl WHERE (ID=MAX(ID)) AND (Name='Moshe'( לפי מה שהבנתי ב MYSQL זה עובד, ב-SQL SERVER נותן לי הודעת שגיאה. למישהו יש פיתרון?
 

HaRmosh

New member
הצעה

אני בספק אם ב-MySQL זה עובד, זה סותר עקרון בסיסי של SQL - הפונקציה max לא יכולה להיות בשימוש בצורה שרצית. מה שצריך זה משהו כזה:
SELECT ID,Name, Status FROM tbl WHERE ID = (SELECT MAX(ID) FROM tbl WHERE Name='Moshe')​
 

shlomub

New member
תודה על התשובה. אבל זה קצת יותר מסובך

הבעיה היא שזו חלק משאילתת חיפוש. מה עושים אם השמות שיצאו בחיפוש הם למשל משה1 משה2 ומשה ומכולם צריך את הסטטוס עם הID הכי גבוה?
 
למעלה