Я новичок в SQL и пытаюсь написать код, который просматривает каждый элемент в столбце и возвращает столбец с суммой каждого элемента в этом исходном столбце. Пример показан ниже.
----------------------------------------------------------
| Company | Payment Type | Price | PriceType |
----------------------------------------------------------
| A | Debit | 100 | CopyCost |
----------------------------------------------------------
| B | Cash | 10 | FullPrice |
----------------------------------------------------------
| C | Debit | 50 | CopyCost |
----------------------------------------------------------
| D | Cash | 20 | CopyCost |
----------------------------------------------------------
Возвращает:
| Paymen Type | ItemCount | TotalPrice |
------------------------------------------
| Debit | 2 | 150 |
------------------------------------------
| Cash | 2 | 30 |
------------------------------------------
Я написал скрипт, который выполняет аналогичную функцию, но имеет две проблемы.
SELECT [Payment Type],
COUNT(*) ItemCount,
SUM(CASE WHEN [Payment Type] = 'Debit' THEN [Price] ELSE 0 END) TotalPrice,
SUM(CASE WHEN [Company Name] = 'Cash' THEN [Price] ELSE 0 END) TotalPrice
FROM [TableName]
GROUP BY [Payment Type]
Первая проблема заключается в том, что создается новый столбец с тем же именем (показано ниже).
| OrderId | ItemCount | TotalPrice | TotalPrice |
---------------------------------------------------------
| Debit | 2 | 150 | 0 |
---------------------------------------------------------
| Cash | 2 | 0 | 30 |
---------------------------------------------------------
Вторая проблема заключается в том, что мне приходится вручную вводить имя каждого уникального элемента в столбце, но база данных слишком велика, чтобы этот параметр был осуществим. Любые предложения будут высоко оценены!