【问题标题】:SQL Server: Get the last row entries (more than one) with sql querySQL Server:使用 sql 查询获取最后一行条目(多个)
【发布时间】:2017-05-31 07:58:28
【问题描述】:

场景:用户将数据(多行)从 Excel 工作表复制并粘贴到我的网页上,然后按提交。发生这种情况时,数据将保存到 SQL Server 表中。当前日期也将保存在每一行旁边。

现在,在另一个 gridview 中,我只想查看当天已粘贴/保存到数据库的这些多行。

所以我在考虑使用 TOP / MAX(date) 但 Top 只返回指定的行,而 MAX 只返回 1 行。

有没有人做过这个或者可以帮助得到一个有效的查询?

【问题讨论】:

  • 样本数据会有所帮助,到目前为止您尝试过什么?
  • 我试过 TOP 和 MAX。我在征求建议??
  • 我认为您最好的方法是通过最大日期并获得前 1 名

标签: sql-server excel tsql gridview


【解决方案1】:

使用TOP WITH TIES 来获取所有最后的条目:

SELECT TOP(1) WITH TIES
...
ORDER BY submit_date DESC;

【讨论】:

  • 基于此我尝试过:select * FROM table where DateSaved IN (SELECT MAX(DateSaved) FROM table) select top(1) with ties * FROM table order by DateSaved desc - 但仍然只返回一个行
  • 那么没有平局。也许是DateSaved 的时间部分?试试ORDER BY CAST(DateSaved AS DATE) DESC
  • 谢谢。有用。忘记了第二个值sql记录。
【解决方案2】:

“那一天”是基于特定日期还是 24 小时间隔?

可以让gridview查询日期字段大于等于dateadd(dd, -1, getdate())的数据

或者,如果您的意思是当前日期,即当前日期,其中日期等于 getdate 的日期。

【讨论】:

  • 假设用户在 2017 年 5 月 15 日保存数据。我只想显示 2017 年 5 月 15 日。问题是,我不能使用“dateadd(dd, -1, getdate()) " 这是因为有时几天/或一周过去了,因此您无法以这种方式准确确定日期。
猜你喜欢
  • 2018-10-20
  • 2018-10-21
  • 1970-01-01
  • 2011-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多