设有一个表TEST(ID,收到任务时间,处理任务时间,任务金额):
create table TEST
(
  ID     VARCHAR2(5) ,
  RE_DATE  VARCHAR2(10),
  CL_DATE   VARCHAR2(10),
  MONEY  NUMBER
)insert into test (ID, RE_DATE,CL_DATE,MONEY) values ('1', '2012-02-10', '2012-02-20', '101');
insert into test (ID, RE_DATE,CL_DATE,MONEY) values ('2', '2012-02-10', '2012-02-20', '102');
insert into test (ID, RE_DATE,CL_DATE,MONEY) values ('3', '2012-02-16', '', '55');
insert into test (ID, RE_DATE,CL_DATE,MONEY) values ('4', '2012-04-15', '2012-05-20', '50');
如何求下列格式数据的sql,求大侠指教!
<table border='1'>
<tr>
<td>月份</td>
<td>当月已完成条数</td>
<td>当月已完成总金额</td>
<td>累计目前未完成条数</td>
<td>累计目前未完成总金额</td>
</tr>
<tr>
<td>2012-02</td>
<td>2</td>
<td>203</td>
<td>1</td>
<td>55</td>
</tr>
<tr>
<td>2012-04</td>
<td>0</td>
<td>0</td>
<td>2</td>
<td>105</td>
</tr>
<tr>
<td>2012-05</td>
<td>1</td>
<td>50</td>
<td>1</td>
<td>55</td>
</tr>
<tr>
<td>2012-06</td>
<td>0</td>
<td>0</td>
<td>1</td>
<td>55</td>
</tr>
</table>

解决方案 »

  1.   

    看你这个格式,建议用存储过程来写,
    静态部分写死,动态数据部分用循序来写,完成一行后以</tr>结束
    整个完成后</table>
      

  2.   

    抱歉呀各位,我放上html代码,以为会显示成表格,那个数据显示形式是以下样的:
    月份 ----当月已完成条数--当月已完成总金额--累计目前未完成条数--累计目前未完成总金额 
    2012-02--2-------------203-------------------1--------------55 
    2012-04--0-------------0--------------------2---------------105 
    2012-05--1-------------50-------------------1--------------55 
    2012-06--0-------------0-------------------1-------------- 55 
    空白处用‘---’填充了,有6月即查询到目前当月。
      

  3.   

    select 
       tochar(CL_DATE,"MM") '月份', 
         case
         when  CL_DATE != null  and CL_DATE != ""  then sum(nvl(MONEY,0)) end '当月已完成总金额',
     case
         when  CL_DATE != null  and CL_DATE != ""  then count(nvl(CL_DATE,0)) end '当月已完成条数',
     case
         when  CL_DATE == null  and CL_DATE == ""  then sum(nvl(MONEY,0)) end '当月未完成总金额',
     case
         when  CL_DATE == null  and CL_DATE == ""  then count(nvl(CL_DATE,0)) end '当月未完成条数',
         from test group by tochar(CL_DATE,"MM")
      

  4.   

    再说明一下要查的数据格式:
    第一列为两个日期列中涉及一直到目前当月的月份,格式为“2012-06”样式;
    第二列为该行月份内完成的条数,用“CL_DATE”判断;
    第三列求符合第二列条件的金额之和;
    第四列累计该月未完成的条数;
    第五列求符合第四列条件的金额之和。