2014-11-15 163 views
1

我正在努力解決這個選擇,但沒有得到任何地方。 請幫忙。 千恩萬謝, 路易絲選擇每個月的最後一天


我需要通過定製和月(出生日期)

例如,爲了獲得銷售每個月份組的最後日期的總和定製=「Q」在一個月= 8我在這個月的最後一天3項=「2014年8月15日」共計13等


DECLARE @sales TABLE 
(custom VARCHAR(10) NOT NULL, 
fecha DATE NOT NULL, 
sales NUMERIC(10, 2) NOT NULL); 

INSERT INTO @sales(custom, fecha, sales) 
VALUES ('q', '20140708', 51), 
('q', '20140712', 3), 
('q', '20140712', 3), 
('q', '20140712', 4), 
('q', '20140811', 3), 
('q', '20140812', 1), 
('q', '20140815', 5), 
('q', '20140815', 6), 
('q', '20140815', 2), 
('q', '20140114', 7), 
('q', '20140714', 24), 
('q', '20140714', 24), 
('x', '20140709', 25), 
('x', '20140710', 16), 
('x', '20140711', 36), 
('x', '20140712', 23), 
('x', '20140712', 35), 
('x', '20140715', 57), 
('c', '20140712', 97), 
('c', '20140715', 71); 

回答

2

試試這個。使用CTE以獲得更好的代碼可讀性

;WITH cte 
    AS (SELECT custom, Max(fecha) fecha 
     FROM @sales 
     GROUP BY custom, Datepart(yyyy, fecha), Datepart(mm, fecha)) 
SELECT b.custom, b.fecha, Sum(b.sales) [Sum] 
FROM cte a 
     JOIN @sales b 
     ON a.custom = b.custom 
      AND a.fecha = b.fecha 
GROUP BY b.custom, b.fecha 
+0

20140715和20130715這兩個日期呢?答案沒問題,但你也應該考慮分組的年份。 –

+0

@EduardUta你是正確的更新我的答案。 –

+0

太棒了,謝謝!現在看起來不錯。 –

相關問題