我正在尝试选择最近的记录。现在它将返回所有记录。从那以后,因为我没有使用过滤器来获得最新的,我不确定如何做到这一点。这是我的代码:
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'
我想从表格中获取最新记录,我猜最有效的方法是获取最新的a.myDate
。
答案 0 :(得分:3)
我写了
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
答案 1 :(得分:1)
这样的事可能会有所帮助
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语句中使用重复的条件键,或者您绝对需要的任何元素都是不同的。