Oracle中有一个表,基本结构如下:
1、RQ(Date)
2、ZT(Char)
表中大约有20万条记录,ZT中的值有两种:0和1我现在希望按照如下的格式查询:
RQ,ZT0,ZT1,就是把ZT表中记录按照日期进行分类,然后生成一个表
简单的查询和统计还能办,上面的要求就不知道该如何处理了:select count(*),to_char(rq,'yyyy-mm-dd') from tabname where zt='0' group by to_char(rq,'yyyy-mm-dd')希望大家指教。

解决方案 »

  1.   

    生成一个表示什么意思?INSERT INTO TABLE?查询语句是
    SELECT RQ, SUM(DECODE(ZT, '0', 0, 1)) AS ZT0, SUM(DECODE(ZT, '1', 1, 0)) AS 1
    FROM  TABNAME
    GROUP BY RQ
    ORDER BY RQ
      

  2.   

    SELECT RQ, SUM(DECODE(ZT,  '0 ', 0, 1)) AS ZT0, SUM(DECODE(ZT,  '1 ', 1, 0)) AS ZT1 
    FROM  TABNAME 
    GROUP BY RQ 
    ORDER BY RQ
      

  3.   

    谢谢,试验了一下,基本可以解决。不过Decode函数的使用方法还不是很明白。
      

  4.   

    DECODE(列名,条件1,结果1,条件2,结果2,条件3,结果3……) 
      

  5.   

    decode就是一系列的case..when..then相当于
    case 列名 
    when 条件1 then 结果1
    when 条件2 then 结果2
    when。
      

  6.   

    谢谢各位,问题已经解决。Decode这个函数以前接触比较少,今天研究了一下还真少很强大。
    以前我的办法少用一个定时执行程序,将数据写入一个表后,再进一步分析,现在用一条语句就解决了。
    谢谢。