sql - 组 SQL 中的最新条目

标签 sql sql-server sql-server-2008

我有一个表,其中我们可以为多个条目使用相同的票号。我想根据“启动”列检索最近的票证(相同的票号)号码。

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 值,则可能会返回重复项。
  • 确保 TicketInitiatedOn 列都有适当的索引

关于sql - 组 SQL 中的最新条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11930637/

相关文章:

javascript - 无法在融合表中更新超过 30 行?

sql - 索引本身是否提供顺序?

asp.net - sql注入(inject)问题

用于搜索具有无限数量位字段的表的 SQL 设计方法

sql - 需要弄清楚如何解析 GETDATE() 以将其与表中的 HHMMSS 值进行比较以查找耗时

Python MySQL 语句返回错误

sql - 为什么我的表没有显示在 SQL Server Management Studio 智能感知中?

sql - 从表中多次选择记录

sql-server - 将数据附加到 SQL 列的最简单方法

sql - 如何在 sql 中将浮点值转换为时间并获取其总和?