我的SQL Server Express 2005表有itemId,ItemName,price,ItemCount,date
列,每個月有幾行輸入。上個月SQL Server 2005最近一次輸入
我需要檢索一個單獨的行,每最近itemId,ItemName,price,ItemCount,date
進入最後一個月
謝謝很多 阿爾貝託
我的SQL Server Express 2005表有itemId,ItemName,price,ItemCount,date
列,每個月有幾行輸入。上個月SQL Server 2005最近一次輸入
我需要檢索一個單獨的行,每最近itemId,ItemName,price,ItemCount,date
進入最後一個月
謝謝很多 阿爾貝託
如果我理解正確的話,你需要用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
這應返回最後一個條目 @begin_on_current_month
後添加的每一個獨特的itemId,ItemName,price,ItemCount
。
它不工作
SELECT itemCode,ITEMNAME,速度,發現日期,ROW_NUMBER()OVER(PARTITION BY itemCode ORDER BY日期DESC)爲num FROM stockcheck的AS一 WHERE日期<「2012/01/01' 選擇一個。* 從 WHERE不支持a.num = 1個 ORDER BY itemcode
的OVER SQL構建體或語句。
6173鋁箔18" X 25' 77.0000 5.00 21/12/2011 00:00:00 1
6173鋁箔18" X 25' 86.9159 9.00 15/12/2011 00:00:00 2
6173鋁箔18" X 25' 70.0000 69.00 10/12/2011 00:00:00 3
6173鋁箔18" X 25' 86.9159 9.00 01/12/2011 00:00:00 4
*最近*由什麼? '日期'? *對於每個最近的* ...再次:每個由什麼?對於每個'itemId'? – 2012-02-23 11:44:07
數據的一個例子可以解釋很多... – 2012-02-23 11:57:16