| 发表于: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); |
|
|
|
|