Как мне упорядочить мой запрос по полю и сгруппировать по подмножеству этого поля в db2? - PullRequest
1 голос
/ 24 февраля 2010

Извините, если название сбивает с толку. Вот запрос у меня

Select MONTH(DATE(TIMESTAMP)), SUM(FIELD1), SUM(FIELD2) from TABLE WHERE TIMESTAMP BETWEEN '2009-07-26 00:00:00' AND '2010-02-24 23:59:59' GROUP BY MONTH(DATE(TIMESTAMP))

Это позволит мне получить номер месяца из запроса. Проблема в том, что сейчас он сортирует месяцы 1,2,3,4 .... когда он охватывает два отдельных года. Мне нужно иметь возможность отсортировать этот запрос по году, а затем по месяцу.

Если я добавлю «ORDER BY TIMESTAMP» в конце моего запроса, я получу эту ошибку:

Недопустимый столбец TIMESTAMP или выражение в списке SELECT. SQLCODE = -122

Также я изменил имена полей для этого вопроса, чтобы было ясно, что поле на самом деле не называется TIMESTAMP

1 Ответ

2 голосов
/ 24 февраля 2010

Вам нужно сгруппировать по годам, а затем по месяцам.

SELECT YEAR(YourField),
Month(YourField),
SUM(Field1),
SUM(Field2)
FROM Table
WHERE...
GROUP BY
YEAR(YourField),
Month(YourField)
ORDER BY
YEAR(YourField),
Month(YourField)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...