选择每个月的最后一天

时间:2014-11-15 17:39:45

标签: sql tsql

我正在努力解决这个选择,但没有得到任何地方 - 。 请帮忙。 非常感谢, 路易丝


我需要按照自定义和按月(fecha)获取每个月组的最后日期的销售总额

例如,对于月份= 8中的custom ='q',我在该月的最后一天有3个项目='2014-08-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);

1 个答案:

答案 0 :(得分: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