add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE AgentSales (
"id" INTEGER,
"date" VARCHAR(34),
"agent" varchar(10),
"sales" int
);

INSERT INTO AgentSales
("id", "date", "agent", "sales")
VALUES
('1', '2021-01-02 00:00:00.000', 'Agent A', 10),
('2', '2021-01-03 00:00:00.000', 'Agent A', 2),
('3', '2021-01-04 00:00:00.000', 'Agent B', 22),
('4', '2021-01-06 00:00:00.000', 'Agent B', 5),
('5', '2021-02-05 00:00:00.000', 'Agent A', 1),
('6', '2021-02-06 00:00:00.000', 'Agent B', 33),
('7', '2021-03-06 00:00:00.000', 'Agent A', 11),
('8', '2021-03-06 00:00:00.000', 'Agent B', 3);
8 rows affected
SELECT
FORMAT(EOMONTH([DATE]), 'yyyy MM') YRMON,
SUM(CASE WHEN AGENT = 'AGENT B' THEN SALES END) [AGENT B],
SUM(CASE WHEN AGENT = 'AGENT A' THEN SALES END) [AGENT A]
FROM AgentSales
GROUP BY EOMONTH([DATE])
ORDER BY EOMONTH([DATE]);
YRMON AGENT B AGENT A
2021 01 27 12
2021 02 33 1
2021 03 3 11
Warning: Null value is eliminated by an aggregate or other SET operation.

SELECT
FORMAT(EOMONTH([DATE]), 'yyyy MM') YRMON,
SUM(CASE WHEN AGENT = 'AGENT B' THEN SALES END) [AGENT B],
SUM(CASE WHEN AGENT = 'AGENT A' THEN SALES END) [AGENT A]
FROM (
SELECT *,
rn = ROW_NUMBER() OVER (PARTITION BY EOMONTH([DATE]), AGENT ORDER BY [DATE])
FROM AgentSales
) sales
GROUP BY EOMONTH([DATE]), rn
ORDER BY EOMONTH([DATE]), rn;
YRMON AGENT B AGENT A
2021 01 22 10
2021 01 5 2
2021 02 33 1
2021 03 3 11
Warning: Null value is eliminated by an aggregate or other SET operation.