Пятница, 27 Октября 2017 г. 05:42
+ в цитатник
Здравствуйте!
Есть исходные данные
Город | ТТ | Отгрузки сумма без НДС Предыдущий месяц | Отгрузки сумма без НДС Текущий месяц | Город1 | ТТ1 | 1000 | 1200 | Город1 | ТТ1 | 1000 | 900 | Город1 | ТТ1 | 1000 | null | Город1 | ТТ1 | null | 1200 | Город1 | ТТ1 | -120 | 1200 | ... | ... | ... | ... |
|
Ножно посчитать количество ТТ по каждому городу при положительных отгрузках с итоговой строкой. Для этого написал такой SQL.
(SELECT
Т1.`Город`,
COUNT(
IIF(`Отгрузки сумма без НДС Предыдущий месяц`>0,`Отгрузки сумма без НДС Предыдущий месяц`,Null)
) AS `Количество ТТ Предыдущий месяц`,
COUNT(
IIF(`Отгрузки сумма без НДС Текущий месяц`>0,`Отгрузки сумма без НДС Текущий месяц`,Null)
) AS `Количество ТТ Текущий месяц`,
`Количество ТТ Текущий месяц`-`Количество ТТ Предыдущий месяц` AS `Дельта`
FROM
`Иcходные данные$` Т1
GROUP BY
Т1.`Город`)
UNION
(SELECT
'Итого' AS Т1.`Город`,
COUNT(
IIF(`Отгрузки сумма без НДС Предыдущий месяц`>0,`Отгрузки сумма без НДС Предыдущий месяц`,Null)
) AS `Количество ТТ Предыдущий месяц`,
COUNT(
IIF(`Отгрузки сумма без НДС Текущий месяц`>0,`Отгрузки сумма без НДС Текущий месяц`,Null)
) AS `Количество ТТ Текущий месяц`,
`Количество ТТ Текущий месяц`-`Количество ТТ Предыдущий месяц` AS `Дельта`
FROM
`Иcходные данные$` Т1)
Все работает. Но, итоговая строка находится посередине.
Город | Количество ТТ Предыдущий месяц | Количество ТТ Текущий месяц | Город1 | 3 | 4 | Город2 | 5 | 6 | Город3 | 7 | 8 | Итого | 30 | 33 | _Город4 | 4 | 3 | _Город5 | 5 | 7 | ... | ... | ... |
|
1. Как сделать так, чтобы итоговая строка была в конце?
2. Возможно ли было запрос как то напиcать по проще и оптимальнее?
http://www.sql.ru/forum/1275315/pro-zapros
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-