該表包含員工的所有登錄資料。我只想報告我只想在這種情況下顯示的最新日期:這是以下資料結果:我只對 3/8/2021|3/8/2021|Korner|Altor| 感興趣
| session_start | 會話結束 | 姓 | 名 |
|---|---|---|---|
| 2021 年 2 月 27 日 | 2021 年 2 月 27 日 | 角 | 阿爾托 |
| 2021 年 2 月 25 日 | 2021 年 2 月 25 日 | 角 | 阿爾托 |
| 2021 年 2 月 24 日 | 2021 年 2 月 24 日 | 角 | 阿爾托 |
| 2021 年 3 月 3 日 | 2021 年 3 月 4 日 | 角 | 阿爾托 |
| 2021 年 3 月 1 日 | 2021 年 3 月 3 日 | 角 | 阿爾托 |
| 2021 年 3 月 8 日 | 2021 年 3 月 8 日 | 角 | 阿爾托 |
select a.session_start, a.session_end, b.last_name, b.first_name
from use_log_with_transactions_view a
inner join staff_view b
on a.staff_id = b.staff_id
order by b.last_name, b.first_name
uj5u.com熱心網友回復:
由于您想要最后一次,這將是會話日期的最大值,因此您需要使用maxand group by:
select
max(a.session_start) as session_start,
max(a.session_end) as session_end,
b.last_name,
b.first_name
from use_log_with_transactions_view a
inner join staff_view b
on a.staff_id = b.staff_id
group by b.last_name, b.first_name
order by b.last_name, b.first_name
uj5u.com熱心網友回復:
如果您想要所有用戶的最新 session_start。
然后你可以使用 ROW_NUMBER 函式。
如果您的資料庫版本支持它。
select
log.session_start,
log.session_end,
staff.last_name,
staff.first_name
from (
select t.*,
row_number() over (partition by staff_id order by session_start desc) as rn
from use_log_with_transactions_view t
) log
join staff_view as staff
on staff.staff_id = log.staff_id
where log.rn = 1
但對于只有 1 個用戶來說,這很簡單。
如果您按 session_start 降序排列員工,則取前 1。
在 MS Sql Server 中你可以select top 1 ...
在 MySql 中你可以使用 LIMIT 1
select
log.session_start,
log.session_end,
staff.last_name,
staff.first_name
from use_log_with_transactions_view as log
join staff_view as staff
on staff.staff_id = log.staff_id
where staff.last_name = 'Korner'
and staff.first_name = 'Altor'
order by log.session_start desc
limit 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/411055.html
標籤:
