有一张表data_complete,有部门、数量、制造日期三个字段。
现在我想在一个gridview中达到如下查询结果,应该怎么做?一次查询或者一张表可以做到么?

解决方案 »

  1.   

     Select Count(DATA_COMPLETE.SN), DATA_COMPLETE.STATION_CODE
       From DATA_COMPLETE
      Where DATA_COMPLETE.WORK_DATE = (Select trunc(SYSDATE) From dual)
      Group By DATA_COMPLETE.STATION_CODE;
     Select Count(DATA_COMPLETE.SN), DATA_COMPLETE.STATION_CODE
       From DATA_COMPLETE
      Where DATA_COMPLETE.WORK_DATE = (Select trunc(SYSDATE-1) From dual)
      Group By DATA_COMPLETE.STATION_CODE;
    这两条查询结果怎么合并到一起
      

  2.   

    通过union来连接 Select Count(DATA_COMPLETE.SN), DATA_COMPLETE.STATION_CODE
       From DATA_COMPLETE
      Where DATA_COMPLETE.WORK_DATE = (Select trunc(SYSDATE) From dual)
      Group By DATA_COMPLETE.STATION_CODE
    union
     Select Count(DATA_COMPLETE.SN), DATA_COMPLETE.STATION_CODE
       From DATA_COMPLETE
      Where DATA_COMPLETE.WORK_DATE = (Select trunc(SYSDATE-1) From dual)
      Group By DATA_COMPLETE.STATION_CODE;
      

  3.   

    你可以 用 后台生成table~ 按照你需要的 就成··
      

  4.   

    谢谢大家,已解决~
    数据库中建立如下视图,然后用VS自带报表实现
    create or replace view report_fox as
    select "COUNT(DATA_COMPLETE.SN)" as cnum,"WDATE" as wdate,"STATION_NAME","ORD" as ord
        from
       (Select Count(DATA_COMPLETE.SN), ('A今天') wdate, CODE_STATION.STATION_NAME,CODE_STATION.Ord
       From DATA_COMPLETE
      Inner Join CODE_STATION
         On CODE_STATION.STATION_CODE = DATA_COMPLETE.STATION_CODE
      Where DATA_COMPLETE.WORK_DATE = trunc(SYSDATE)
      Group By CODE_STATION.STATION_NAME,CODE_STATION.Ord
     Union
     Select Count(DATA_COMPLETE.SN), ('B昨天') wdate, CODE_STATION.STATION_NAME,CODE_STATION.Ord
       From DATA_COMPLETE
      Inner Join CODE_STATION
         On CODE_STATION.STATION_CODE = DATA_COMPLETE.STATION_CODE
      Where DATA_COMPLETE.WORK_DATE = trunc(SYSDATE-1)
      Group By CODE_STATION.STATION_NAME,CODE_STATION.Ord
       Union
     Select Count(DATA_COMPLETE.SN), ('C本月') wdate, CODE_STATION.STATION_NAME,CODE_STATION.Ord
       From DATA_COMPLETE
      Inner Join CODE_STATION
         On CODE_STATION.STATION_CODE = DATA_COMPLETE.STATION_CODE
      Where trunc(DATA_COMPLETE.WORK_DATE,'mm') = trunc(sysdate,'mm')
      Group By CODE_STATION.STATION_NAME,CODE_STATION.Ord
         Union
     Select Count(DATA_COMPLETE.SN), ('D本年') wdate, CODE_STATION.STATION_NAME,CODE_STATION.Ord
       From DATA_COMPLETE
      Inner Join CODE_STATION
         On CODE_STATION.STATION_CODE = DATA_COMPLETE.STATION_CODE
      Where trunc(DATA_COMPLETE.WORK_DATE,'YYYY') = trunc(sysdate,'YYYY')
      Group By CODE_STATION.STATION_NAME,CODE_STATION.Ord)
      order by ord,wdate;