У меня есть таблица, в которой есть столбец с 15 различными именами (TotalName), два из этих имен будут flowOne и flowTwo. Существует также столбец, который представляет собой метку времени (t_stamp) и значение. Каждый раз, когда новое значение добавляется в таблицу, оно помечается вместе с тем, откуда оно появилось. Я пытаюсь создать запрос, который даст мне столбцы для каждого из 15 различных имен вместе с итогом за месяц и номером месяца. Я попробовал это для двух имен, и они заканчиваются в отдельных рядах. Я хотел бы, чтобы он отображался в одной строке за месяц.
SELECT YEAR(t_stamp) as 'Year', MONTH(t_stamp) as 'Month', sum(FlowTotals.FlowTotal) as 'flowOne', '' as 'flowTwo'
FROM DataBase.dbo.FlowTotals
WHERE FlowTotals.TotalName = 'flowOne'
and year(t_stamp) = year(getDate())
Group By Year(t_stamp), Month(t_stamp)
UNION
SELECT YEAR(t_stamp) as 'Year', MONTH(t_stamp) as 'Month', '' as 'flowOne', sum(FlowTotals.FlowTotal) as 'flowTwo'
FROM DataBase.dbo.FlowTotals
WHERE FlowTotals.TotalName = 'flowTwo'
and year(t_stamp) = year(getDate())
Group By Year(t_stamp), Month(t_stamp)
Порядок по месяцам
Это выдаст
Year Month totalOne totalTwo
2019 1 123456 0
2019 1 0 789123
2019 2 456789 0
2019 2 0 345678
Я бы хотелиметь одну строку для месяца 1, одну строку для месяца 2 со всеми значениями в этой строке и т. д.
Я знаю, что часть проблемы заключается в том, что в моих операторах Select есть '' as 'flowOne, но это был единственныйТаким образом, я мог бы разделить на 2 разных столбца. Суммирование для каждой строки работает как ожидалось.