C# 基于日期时间列SQL获取最新记录
我正在尝试选择最近的记录。现在它正在返回所有记录。这使得,因为我没有加入一个过滤器来获取最新的,我不知道如何做到这一点。这是我的密码:C# 基于日期时间列SQL获取最新记录,c#,sql-server,datetime,C#,Sql Server,Datetime,我正在尝试选择最近的记录。现在它正在返回所有记录。这使得,因为我没有加入一个过滤器来获取最新的,我不知道如何做到这一点。这是我的密码: 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.
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
类似的内容可能会有所帮助
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 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 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.使用a.myDate DESC下的订单,2。将日期格式保留在客户端。订单将放在哪里?在select?@codeFinatic结束时,您应该随时准备好一些东西供您使用。这就是谷歌等东西的用途。另外,请澄清您是否想要
最近的一份或多份记录
,我认为这也会过滤掉您可能得到的模糊答案的数量,例如选择top
执行搜索条件并使用带有Order By的Where子句也要注意,当您将Where子句应用于外部联接表中的列时,该外部联接实际上变成了内部联接。您真的不应该一次问两个问题。因为你的第一个问题已经得到了回答,所以把第二部分去掉,让它成为一个单独的问题(或者只搜索一下,这个问题以前肯定已经回答过了)。使用a.myDate DESC下的订单,2。将日期格式保留在客户端。订单将放在哪里?在select?@codeFinatic结束时,您应该随时准备好一些东西供您使用。这就是谷歌等东西的用途。另外,请澄清您是否想要最近的一份或多份记录
,我认为这也会过滤掉您可能得到的模糊答案的数量,例如选择top
执行搜索条件并使用带有Order By的Where子句也要注意,当您将Where子句应用于外部联接表中的列时,该外部联接实际上变成了内部联接。您真的不应该一次问两个问题。由于您的第一个问题已经得到回答,请删除第二部分并将其设为一个问题(或者只搜索一下,这肯定是以前回答过的问题)。这是99%的正确答案,但它没有解决最后一句中的日期格式问题。你能编辑这个来解决这个问题吗?去它的,我自己修好的。:)+n00b为1。欢迎登机!这是99%的正确答案,但它没有解决最后一句中的日期格式问题。你能编辑这个来解决这个问题吗?去它的,我自己修好的。:)+n00b为1。欢迎登机!