שאילתה לנתון אחרון באקסס
-
יש לי טבלת אקסס שמציגה סטטוס מסוים של אנשים, יש שתי אפשרויות 1 ו2.
כל אדם יכול לעדכן את הסטטוס כמה פעמים.
לכל שורה כמובן יש id ותאריך עדכון אך יתכנו כמה עדכונים באותו יום
אני רוצה ליצור שאילתות שיציגו לי מי הסטטוס האחרון שלו הוא 1 ומי 2
אם אני מסנן סתם אז הוא מציג לי אותו גם אם הוא עדכן סטטוס אחר מאוחר יותר.
אשמח לכל עזרה או מראי מקומות -
@smk123 אמר בשאילתה לנתון אחרון באקסס:
יש לי טבלת אקסס שמציגה סטטוס מסוים של אנשים, יש שתי אפשרויות 1 ו2.
כל אדם יכול לעדכן את הסטטוס כמה פעמים.
לכל שורה כמובן יש id ותאריך עדכון אך יתכנו כמה עדכונים באותו יום
אני רוצה ליצור שאילתות שיציגו לי מי הסטטוס האחרון שלו הוא 1 ומי 2
אם אני מסנן סתם אז הוא מציג לי אותו גם אם הוא עדכן סטטוס אחר מאוחר יותר.
אשמח לכל עזרה או מראי מקומותאם ה ID הוא מספור אוטמטי / עולה, תעשה שאילתת סכומים עם max על תאריך עדכון ו- ID
-
זה הפתרון שמצאתי
https://stackoverflow.com/questions/12203521/selecting-max-record-for-each-user
נראה לי הכי אלגנטי
ואחרי זה אני עושה סינון על העמודה שאני רוצה -
@חייםיודלביץ אמר בשאילתה לנתון אחרון באקסס:
אם ה ID הוא מספור אוטמטי / עולה, תעשה שאילתת סכומים עם max על תאריך עדכון ו- ID
הid הוא רעיון מעולה, אבל גם אם אין id, אפשר לקבץ לפי אנשים ובסטטוס לפי last,
@smk123 אמר בשאילתה לנתון אחרון באקסס:
זה הפתרון שמצאתי
https://stackoverflow.com/questions/12203521/selecting-max-record-for-each-user
נראה לי הכי אלגנטי
ואחרי זה אני עושה סינון על העמודה שאני רוצהשם הביאו את השאילתה הבאה:
SELECT MemberID, ContractID, StartDate, EndDate FROM member_contracts WHERE ContractId IN ( SELECT MAX(ContractId) FROM member_contracts GROUP BY MemberId )
נראה לי קצת מוזר, זה צורה שיכולה להכביד, כי היא פותחת שאילתא בכל רשומה (אם אני לא טועה),
אפשר לעשות את אותה פעולה, ע"י שאילתה וירטואלית עם join ואז מקבלים את כל הטבלה
או אפי' שאילתת סיכום ולקבץ את כל השדות לפי last, (כמובן אחרי שמקבצים את האנשים). -
@avi-rz אמר בשאילתה לנתון אחרון באקסס:
נראה לי קצת מוזר, זה צורה שיכולה להכביד, כי היא פותחת שאילתא בכל רשומה (אם אני לא טועה),
במקרה ש ContractID הוא ייחודי בטבלה - IN בד"כ יהיה יותר מהיר מ-JOIN. עיין כאן להשוואה.