select field1,count(field2) as allDone from table1 where field3=0 group by field1;
select field1,count(field2) as allWait from table1 where field3=1 group by field1;
请高手指教怎么样才能把上面两句SQL组合成一句得到如下的结果集
列    field1 allDone allWait
数据   ...    ....    .....
       ...    ....    .....

解决方案 »

  1.   

    别的方法也行。只要是能用纯粹的SQL语言来实现就可以了。用PL/SQL也可以,不过这样就简单多了。
      

  2.   

    select a.field1,a.allDone,b.allWait (select field1,count(field2) as allDone from table1 where field3=0 group by field1) a,(select field1,count(field2) as allWait from table1 where field3=1 group by field1) b where a.field1=b.field1;
    =============================================================
    你想得到如下的形式
    列    field1 allDone allWait
    数据   ...    ....    .....
           ...    ....    .....
    =============================
    不知道你的两个结果集中的field1是否完全一样,如果一样用上面的语句就这样,如果不一样,比如第一个结果集中field1中有值"A"而第二个结果集没有,这样你想得到什么样的形式?你可以改一下连接方式,左连、右连、。。或全连。
      

  3.   

    select field1,count(allDone),count(allWait) from (
    select field1,count(field2) as allDone,null allWait  from table1 where field3=0 group by field1 
    union all 
    select field1,null allDone,count(field2) as allWait from table1 where field3=1 group by field1) a
    group by field1