ORACLE的SQL高手帮我看下错误,谢谢了

[复制链接]
查看11 | 回复1 | 2009-4-29 16:25:21 | 显示全部楼层 |阅读模式
SELECT SUM(A.JILU),
CASE A.XF_CREATEDATE WHEN TO_CHAR(A.XF_CREATEDATE,'YYYYMMDD')>'20050101' AND TO_CHAR(A.XF_CREATEDATE,'YYYYMMDD')'20060101' AND TO_CHAR(A.XF_CREATEDATE,'YYYYMMDD')'20070101' AND TO_CHAR(A.XF_CREATEDATE,'YYYYMMDD')'20080101' AND TO_CHAR(A.XF_CREATEDATE,'YYYYMMDD')'20090101' THEN '2009'
ELSE A.XF_CREATEDATE
END 'SEASON'
FROM
(SELECT COUNT(*) JILU,XF_CREATEDATE FROM XF_PROMPOOLH
GROUP BY XF_CREATEDATE
ORDER BY XF_CREATEDATE) A
GROUP BY SEASON
刚才改了一下,还是不对
SELECT SUM(A.JILU),
CASE WHEN TO_CHAR(A.XF_CREATEDATE,'YYYYMMDD')>'20050101' AND TO_CHAR(A.XF_CREATEDATE,'YYYYMMDD')'20060101' AND TO_CHAR(A.XF_CREATEDATE,'YYYYMMDD')'20070101' AND TO_CHAR(A.XF_CREATEDATE,'YYYYMMDD')'20080101' AND TO_CHAR(A.XF_CREATEDATE,'YYYYMMDD')'20090101' THEN '2009'
ELSE A.XF_CREATEDATE
END AS 'YEAR'
FROM
(SELECT COUNT(*) JILU,XF_CREATEDATE FROM XF_PROMPOOLH
GROUP BY XF_CREATEDATE
) A
GROUP BY YEAR

回复

使用道具 举报

千问 | 2009-4-29 16:25:21 | 显示全部楼层
首先case处用法不对 该 CASE WHEN TO_CHAR(A.XF_CREATEDATE,'YYYYMMDD')>'20050101' AND TO_CHAR(A.XF_CREATEDATE,'YYYYMMDD')'20050101' AND TO_CHAR(A.XF_CREATEDATE,'YYYYMMDD')<'20051231' THEN '2005' WHEN TO_CHAR(A.XF_CREATEDATE,'YYYY...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行