我试图返回一些结果分布在连续12个月内如组名称?SQL结果按月
在MSSQL中它会是这样的:
SELECT COUNT(problem.problem_type = 'IN') AS IN,
COUNT(problem.problem_type = 'OUT') AS OUT,
DATEPART(year, DateTime) as Year,
DATEPART(month, DateTime) as Month
FROM problem
WHERE (DateTime >= dbo.FormatDateTime('2010-01-01'))
AND
(DateTime < dbo.FormatDateTime('2010-01-31'))
GROUP BY DATEPART(year, DateTime),
DATEPART(month, DateTime);
但这是针对Oracle数据库,以便DATEPART和日期时间都没有。
我的问题表大致是:
problem_ID Problem_type IN_Date OUT_Date
1 IN 2010-01-23 16:34:29.0 2010-02-29 13:06:28.0
2 IN 2010-01-27 12:34:29.0 2010-01-29 12:01:28.0
3 OUT 2010-02-13 13:24:29.0 2010-09-29 15:04:28.0
4 OUT 2010-02-15 16:31:29.0 2010-07-29 11:03:28.0
通过30秒打我! – 2010-11-09 20:47:54
为什么我们不能用'mon_year组'? MySQL允许在group子句中使用别名列名。 – 2012-12-25 06:32:45
@Scott Chu:Oracle不允许在Group子句中使用列别名。您必须手动匹配列中使用的表达式。里程可能因其他数据库而异。 – ZeroK 2013-06-19 16:41:59