Создание сводной таблицы в SQL - PullRequest
0 голосов
/ 04 мая 2020

Я мог бы использовать некоторую помощь в создании PIVOT-таблицы.

Таблица, из которой я ищу сводную таблицу:

Track Number   Customer Number  Ship Date       Op Code     Curr      Surcharge Reason          Surcharge Amt
1100411007     326740721        2019-08-27      Ground      USD       Ground Fuel Surcharge     0.55
1100411007     126270721        2019-12-11      Ground      USD       Air Fuel Surcharge        0.45
1150481637     126170723        2019-01-19      Ground      USD       Residential Delivery      0.55
1150354456     125770746        2019-03-19      Ground      USD       Ext. Residential Del.     0.57
1150394131     126720765        2019-09-27      Ground      USD       Out of Area Delivery      0.50
1600746152     121770100        2019-03-12      Ground      USD       Ground Fuel Surcharge     0.52

Где я хочу изменить ее на Формат из

Track Number    Surcharge Reason #1         Surcharge Reason #2         Surcharge Reason #3        Surcharge reason #N 
Tracking #1     Surcharge Amt (if any)      Surcharge Amt (if any)      Surcharge Amt (if any)     ...
Tracking #2     Surcharge Amt (if any)      Surcharge Amt (if any)      Surcharge Amt (if any)     ...
Tracking #3     ...                         ...                         ...                        ...
Tracking #4     ...                         ...                         ...                        ...
Tracking #5     ...                         ...                         ...                        ...
...

с номером отслеживания в качестве идентификатора строки, добавленные столбцы - это уникальные значения в столбце «причина доплаты», а значения данных - сумма доплаты, если есть номер трека и причина доплаты

Любая помощь в отправке меня по правильному пути будет очень признательна.

1 Ответ

0 голосов
/ 04 мая 2020

Вы можете достичь ожидаемого результата, используя оператор case. Вот пример.

select
    trackNumber,
    sum(case when surchargeReason = 'Ground Fuel Surcharge' then amount else 0 end) as "Ground Fuel Surcharge"
from youTable
group by
    trackNumber
...