SQL从日期字段中选择顶部日期
所以我有一个带有日期列的表。我希望能够按某种类型的项目字段对这些日期进行分组。例如,我可能有一个名为Item的列,在Item字段中可能有500个条目。项目12345可能有5个实体,每个实体都有一个价格。我希望能够取出所有项目,按最新日期分组SQL从日期字段中选择顶部日期,sql,sql-server,tsql,Sql,Sql Server,Tsql,所以我有一个带有日期列的表。我希望能够按某种类型的项目字段对这些日期进行分组。例如,我可能有一个名为Item的列,在Item字段中可能有500个条目。项目12345可能有5个实体,每个实体都有一个价格。我希望能够取出所有项目,按最新日期分组 031126-2M1 8/10/2011 12:00:00 AM 7.8678 031126-2M1 7/22/2011 12:00:00 AM 9.
031126-2M1 8/10/2011 12:00:00 AM 7.8678
031126-2M1 7/22/2011 12:00:00 AM 9.5620
031126-2M1 7/15/2011 12:00:00 AM 8.8090
在本例中,我想显示最接近日期为2011年7月15日的商品,以便使用8.8090的价格。然后列表将显示其他项目,一些可能有一个条目,其他可能有许多条目,但我想显示所有这些条目以及壁橱日期。需要帮助
谢谢从表中选择*
这里=那里
把有这个的东西分组。
按日期说明订购
这应该在查询本身中实现
希望这有帮助
干杯MS SQL Server版本
WITH
sorted_data AS
(
SELECT
ROW_NUMBER() OVER (PARTITION BY item_id ORDER BY item_date DESC) AS row_id,
*
FROM
item_data
WHERE
item_date <= getDate()
)
SELECT * FROM sorted_data WHERE row_id = 1
这似乎是我迄今为止看到的最不确定的答案之一。请你稍微扩展一下好吗?我在任何风格复兴之前回答了这个问题,那一刻对我来说是最优雅的回答。。顺便说一句,我忍不住要用一行字来表示所有内容。@gabrielVa:别再做混蛋了&用数据库来标记你的问题。你已经被问过很多次了,你的接受率表明你参与了。这是我最后一次向那些想帮助你的人表示礼貌。