我的SQL Server Express 2005表有itemId,ItemName,price,ItemCount,date
列,每个月输入几行。
我需要为上个月输入的最新itemId,ItemName,price,ItemCount,date
检索一行
非常感谢你 阿尔贝托
答案 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