SQL Server 2005上个月的最新条目

时间:2012-02-23 11:41:19

标签: sql-server-2005

我的SQL Server Express 2005表有itemId,ItemName,price,ItemCount,date列,每个月输入几行。

我需要为上个月输入的最新itemId,ItemName,price,ItemCount,date检索一行

非常感谢你 阿尔贝托

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您需要ROW_NUMBER() PARTITION BY条款。

像(未经测试)的东西:

;WITH a AS (
SELECT
  itemId,ItemName,price,ItemCount,date
  , ROW_NUMBER() OVER (PARTITION BY itemId,ItemName,price,ItemCount ORDER BY date DESC) AS num
FROM 
 table
WHERE
 date >= @begin_on_current_month
) 
SELECT
  a.*
FROM
  a
WHERE
  a.num = 1

这应该返回之后添加的每个唯一itemId,ItemName,price,ItemCount的最后一个条目 @begin_on_current_month

答案 1 :(得分:0)

不起作用

SELECT itemCode,ItemName,rate,found,date,ROW_NUMBER()OVER(PARTITION BY itemCode ORDER BY date DESC)AS num 来自StockCheck AS a 在哪里日期< '2012/01/01'                           选择一个。*                            从一个                            在哪里a.num = 1                            ORDER BY itemcode

不支持OVER SQL构造或语句。

6173 ALUMINIUM FOLIL 18“X 25'77.0000 5.00 21/12/2011 00:00:00 1

6173 ALUMINIUM FOLIL 18“X 25'86.9159 9.00 15/12/2011 00:00:00 2

6173 ALUMINIUM FOLIL 18“X 25'70.0000 69.00 10/12/2011 00:00:00 3

6173 ALUMINIUM FOLIL 18“X 25'86.9159 9.00 01/12/2011 00:00:00 4