2010-02-24 109 views
1

对不起,如果标题混乱。这里是我的查询如何按字段排序我的查询,然后按db2中该字段的子集对它进行排序?

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

+0

这是奇怪的是,你不能通过时间戳字段来排序,我一直这样做。 – casraf 2010-02-24 13:33:59

回答

2

你在今年需要再组:一个月

SELECT YEAR(YourField), 
Month(YourField), 
SUM(Field1), 
SUM(Field2) 
FROM Table 
WHERE... 
GROUP BY 
YEAR(YourField), 
Month(YourField) 
ORDER BY 
YEAR(YourField), 
Month(YourField) 
+0

TThanks为快速响应。它效果很好。 – Mike 2010-02-24 14:15:25