我有一个表,其中我们可以为多个条目使用相同的票号。我想根据“启动”列检索最近的票证(相同的票号)号码。
Ticket VendorTicket InitiatedOn Comments
198165 test 2012-08-10 16:31:33.707 test
199485 sagar 2012-08-11 12:36:25.720 sagar
199485 sagar1 2012-08-11 14:36:25.720 sagar1
199478 kishor 2012-08-11 12:37:21.923 kishor
我在存储过程中用 T-SQL 编写了此查询,它给了我错误提示 xObj = {“'.' 附近的语法不正确。”}
我的 T-SQL
`@SQL='Select ''<a href="javascript:editTicketByIDAction('' + CONVERT(VarChar(Max), Ticket) + '')">'' + CONVERT(VarChar(Max),Ticket) + ''</a>'' t1.Ticket,t1.VendorTicket[Vendor Ticket],t1.Comments
From VendorTickets t1
WHERE NotifyOn <= GetDate() And NotifyOn Is Not Null AND
NOT EXISTS
(SELECT * FROM VendorTickets t2
WHERE t1.Ticket = t2.Ticket AND t1.InitiatedOn < t2.InitiatedOn)'`
最佳答案
此问题的通用解决方案(适用于任何数据库)如下:
SELECT * FROM [my_table] t1
WHERE NOT EXISTS (
SELECT * FROM [my_table] t2
WHERE t1.Ticket = t2.Ticket
AND t1.InitiatedOn < t2.InitiatedOn
)
内容如下:从 my_table 中获取所有值,其中没有具有相同 Ticket
ID 和较新日期的票证。
注释:
- 如果有两个“最新”票证具有相同的
InitiatedOn
值,则可能会返回重复项。 - 确保
Ticket
和InitiatedOn
列都有适当的索引
关于sql - 组 SQL 中的最新条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11930637/