您的位置:程序门 -> db2 -> 数据库开发



关于 交叉表 得问题?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


关于 交叉表 得问题?
发表于:2007-11-01 15:41:37 楼主
下面得   语句   在   db2中   如何   改呀??
declare   @sql   varchar(8000)  
  set   @sql   =   '   select   *   from   (select     m.stationnam,m.stationid,   '  
  select   @sql   =   @sql   +   'sum(case   mc_subroad.subcname   when   '''+subcname+'''   then       tb_tollspt.toll     else   0   end)   as   '''+subcname+''','      
from   (select   distinct   mc_subroad.subcname   ,mc_subroad.subcid  
    from   tb_tollspt   right   outer   join     mc_subroad   on   tb_tollspt.insubcid   =   mc_subroad.subcid    
order   by   mc_subroad.subcid   fetch   first   100   rows   only   )   as     a    
select   @sql   =   left(@sql,len(@sql)-1)   +   '   from   tb_tollspt   left   outer   join   mc_subroad   on     mc_subroad.subcid   =   tb_tollspt.insubcid     left   outer   join   mc_station   m   on   tb_tollspt.staid   =   m.stationid   and     tb_tollspt.findt   > =   ''2007-10-1   0:00:00''     and   tb_tollspt.findt   <   ''2007-11-1   0:00:00''     group   by   m.stationnam   ,   m.stationid   order   by   m.stationid   fetch   first   100   rows   only   )   as   b   ,     (select   sum(toll)   as   toll   ,sum(acttoll)   as   acttoll,sum(ce)   as   ce,   sum(toll)/(sum(acttoll)+sum(toll))   as   bl,stationnam   as   cstationnam     from   (   select     toll   ,sum(nortoll   +   trucktoll+ratiotoll)   as   acttoll,   (toll   -   sum(   nortoll   +   trucktoll   +   ratiotoll))   as   ce,     staid   from   tb_tollspt   where   tb_tollspt.findt   > =   ''2007-10-1   0:00:00''     and   tb_tollspt.findt   <   ''2007-11-1   0:00:00''     group   by   staid,toll   )   as   d,mc_station   where   d.staid   =     mc_station.stationid       group   by   stationnam)   as   c       where   b.stationnam   =   c.cstationnam'     EXEC(@sql);
发表于:2007-11-02 10:21:571楼 得分:0
怎么没人   帮我看看   呀!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


快速检索

最新资讯
热门点击