1
我有一個表值函數,該函數返回一個表格,其中有5列按銷售DESC排序。WHERE子句中的T-SQL CASE
Item.Count..Year...Month....Sales............ID
808.........2010.....7......212282.88........1
699.........2011.....7......179029.45........2
829.........2007.....7......135034.52........3
959.........2005.....7......129611.80........4
861.........2006.....7......104667.57........5
我想要做的是獲得第二大銷售價值。我可以做。但是,業務邏輯規定,如果第二大銷售額的年份與當年(2011年)相同,則獲得下一個銷售額(135034.52)。
這是我有:
DECLARE @Sales DECIMAL(14, 2) = 179029.45
SELECT *
FROM dbo.fnGetDate(181, '08-01-2011')
WHERE ID =
CASE WHEN Sales = @Sales AND Year = YEAR(DATEADD(M, -1, '08-01-2011'))
THEN 3 ELSE 2 END
不幸的是,這並不工作的方式應該。如果我在@Sales中更改該值,它將起作用(即179029.44)。
任何人都可以幫忙嗎?
這確實做的伎倆!謝謝。 – coson