Можно попробовать использовать агрегатную функцию условия
CREATE TABLE T(
DATE INT,
PRICE INT,
[CATEGORY 1] VARCHAR(50),
[CATEGORY 2] VARCHAR(50)
);
INSERT INTO T VALUES (20171215,285,'Books','Non-Fiction');
INSERT INTO T VALUES (20171212,390,'Gaming','PlayStation 4');
INSERT INTO T VALUES (20171213,40 ,'Antiques','collectables');
Запрос 1 :
SELECT DATE,
SUM(CASE WHEN [CATEGORY 1] = 'Books' and [CATEGORY 2] = 'Non-Fiction' THEN PRICE end) 'Books- Non-Fiction ',
SUM(CASE WHEN [CATEGORY 1] = 'Gaming' and [CATEGORY 2] = 'PlayStation 4' THEN PRICE end) 'Gaming - PlayStation 4',
SUM(CASE WHEN [CATEGORY 1] = 'Antiques' and [CATEGORY 2] = 'collectables' THEN PRICE end) 'Antiques - collectables'
FROM T
GROUP BY DATE
ORDER BY DATE
Результаты :
| DATE | Books- Non-Fiction | Gaming - PlayStation 4 | Antiques - collectables |
|----------|---------------------|------------------------|-------------------------|
| 20171212 | (null) | 390 | (null) |
| 20171213 | (null) | (null) | 40 |
| 20171215 | 285 | (null) | (null) |