ورود

View Full Version : بدست آوردن آخرین عمل براساس شرط دیگر



Iran58
سه شنبه 04 خرداد 1395, 19:17 عصر
سلام
اول از همه برای عنوان نامناسب عذرخواهی می گنم
یک جدول داریم که دارای 40000هزار رکورد می باشد
که دارای ستونهای ردیف ,ساعت, نوع عمل (ورود وخروج),نام کار می باشد
وهر کار بر حداقل یک رکورد و حداکثر20 رکورد می باشد اول برای هرکاربر رکورد ورود ثبت میشود و رکورد بعدی آن خروج است
حال من می خواهم کاربرانی را بدست آورم که آخرین رکورد آنها نوع عملش ورود باشد
چگونه باید کد بنویسم
که تمام اشخاصی که رکورد آخرین آنها ورود است را بدست آورم
(شاید یک نفر 5تا ورود داشته باشد و 4تا خروج اما من رکوردی را می خواهم که ورود آن برایش رکورد خروجی ثبت نشده است)
باتشکر

Mahmood_M
سه شنبه 04 خرداد 1395, 22:26 عصر
SELECT T1.UName, T1.UAction, T2.MaxTime FROM log_table T1
JOIN (SELECT UName, MAX(UTime) AS maxTime FROM log_table GROUP BY UName) T2
ON T1.UName = T2.UName WHERE T1.UAction = 1 AND T1.UTime = T2.maxTime;

در مثال بالا فیلد UAction ورود و خروج رو مشخص می کنه که مقدار 1 یعنی ورود و فیلد UTime هم زمان عملیات رو مشخص می کنه، اسم جدول هم log_table هستش