У меня есть таблица, как показано ниже в базе данных sqlite. Я хочу создать линейную диаграмму, показывающую использование по группам продуктов.
Table: ProductUsageData
UserID ProductName ProductGroup Qty RecordID
1 A1 A 12 1
2 A1 A 12 1
1 A2 A 15 1
3 A1 A 12 2
2 B1 B 12 2
5 B2 B 5 2
1 A1 A 12 3
1 A2 A 15 3
4 A1 A 12 3
3 C1 C 12 3
2 C2 C 15 3
Поскольку мне нужна отдельная строка для каждой группы продуктов, которую я использую ниже, Запрос
SELECT
SUM(Qty) as UsedQty,
ProductGroup,
RecordID
FROM ProductUsageData
GROUP BY ProductGroup, RecordID
ORDER BY RecordID ASC;
В то время как я получаю три записи для A (для каждого RecordID) я получаю только 1 запись для B & C, поскольку они не используются во время каждого RecordID. Проблема в том, что, когда я помещаю по одной строке для каждой группы продуктов в диаграмме, точки для B & C отображаются в соответствии с количеством в первом выводе. Мой вывод выглядит следующим образом
A 39 1
A 12 2
B 17 2
A 39 3
C 27 3
Таким образом, график выглядит так: это
вместо
Чтобы исправить это, я изменил запрос с использованием COALESCE для получения 0 Qty, если ProductGroup не используется во время каждой записи.
SELECT
COALESCE(SUM(Qty), 0) as UsedQty,
ProductGroup,
RecordID
FROM ProductUsageData
GROUP BY ProductGroup, RecordID
ORDER BY RecordID ASC;
Я ожидал вывод, как показано ниже
A 39 1
B 0 1
C 0 1
A 12 2
B 17 2
C 0 2
A 39 3
B 0 3
C 27 3
Но я получаю тот же вывод, что и первый
Пожалуйста, дайте мне знать, как я могу исправить запрос, чтобы получить желаемый результат