根据日期时间列获取最新记录 SQL
Getting most recent record based on datetime column SQL
我正在尝试 select 最近的记录。现在它正在返回所有记录。这是因为,因为我没有放入过滤器来获取最新信息,所以我不确定该怎么做。这是我的代码:
select
c.my_Name, a.my_Num, d.myBrand, a.order_bill, a.myDate
from
[table1] a
left join
[table2] b on a.[myCode] = b.[myCode]
left join
[table3] c on c.myTag = b.myTag
left join
[table4] d on a.[myHash] = d.[myHash]
where
c.[myName] = 'test name'
我想从 table 获取最近的记录,我猜最有效的方法是获取最近的 a.myDate
.
这样的事情可能会有所帮助
select c.my_Name, a.my_Num, d.myBrand, a.order_bill, MAX(a.myDate)
from [table1] a
left join [table2] b on a.[myCode] = b.[myCode]
left join [table3] c on c.myTag=b.myTag
left join [table4] d on a.[myHash] = d.[myHash]
where c.[myName] = 'test name'
group by c.my_Name, a.my_Num, d.myBrand, a.order_bill
order by a.myDate DESC
这将抓取最大(最近)a.myDate 的不同记录,按您的其他元素分组。
注意重复项。在 select 语句中使用重复的条件键,或者您绝对 需要 区分的任何元素。
我会写
SELECT TOP 1
c.my_Name, a.my_Num, d.myBrand, a.order_bill, CONVERT(char(10), a.myDate,126)
FROM [table1] a
LEFT JOIN [table2] b on a.[myCode] = b.[myCode]
LEFT JOIN [table3] c on c.myTag=b.myTag
LEFT JOIN [table4] d on a.[myHash] = d.[myHash]
WHERE c.[myName] = 'test name'
ORDER BY a.myDate DESC
我正在尝试 select 最近的记录。现在它正在返回所有记录。这是因为,因为我没有放入过滤器来获取最新信息,所以我不确定该怎么做。这是我的代码:
select
c.my_Name, a.my_Num, d.myBrand, a.order_bill, a.myDate
from
[table1] a
left join
[table2] b on a.[myCode] = b.[myCode]
left join
[table3] c on c.myTag = b.myTag
left join
[table4] d on a.[myHash] = d.[myHash]
where
c.[myName] = 'test name'
我想从 table 获取最近的记录,我猜最有效的方法是获取最近的 a.myDate
.
这样的事情可能会有所帮助
select c.my_Name, a.my_Num, d.myBrand, a.order_bill, MAX(a.myDate)
from [table1] a
left join [table2] b on a.[myCode] = b.[myCode]
left join [table3] c on c.myTag=b.myTag
left join [table4] d on a.[myHash] = d.[myHash]
where c.[myName] = 'test name'
group by c.my_Name, a.my_Num, d.myBrand, a.order_bill
order by a.myDate DESC
这将抓取最大(最近)a.myDate 的不同记录,按您的其他元素分组。
注意重复项。在 select 语句中使用重复的条件键,或者您绝对 需要 区分的任何元素。
我会写
SELECT TOP 1
c.my_Name, a.my_Num, d.myBrand, a.order_bill, CONVERT(char(10), a.myDate,126)
FROM [table1] a
LEFT JOIN [table2] b on a.[myCode] = b.[myCode]
LEFT JOIN [table3] c on c.myTag=b.myTag
LEFT JOIN [table4] d on a.[myHash] = d.[myHash]
WHERE c.[myName] = 'test name'
ORDER BY a.myDate DESC