交叉数据报表sql server:select id ,sum(case lb when '工业' then syd when '工业照明' then td1 else 0 end),
sum(case lb when '照明' then syd when '工业照明' then td2 else 0 end),
sum(case lb when '农业' then syd )
from tblname
group by idaccess:select id ,sum(iif(lb='工业',syd,iif(lb='工业照明',td1,0)),
sum(iif(lb='照明',syd,iif(lb='工业照明',td1,0)),
sum(iif(lb='农业',syd,0))
from tblname
group by id以上是lb类型只有三种,而且只有上面的组合的情况,如果有其它情况,你可以根据上面的再改一改使用。
sum(case lb when '照明' then syd when '工业照明' then td2 else 0 end),
sum(case lb when '农业' then syd )
from tblname
group by idaccess:select id ,sum(iif(lb='工业',syd,iif(lb='工业照明',td1,0)),
sum(iif(lb='照明',syd,iif(lb='工业照明',td1,0)),
sum(iif(lb='农业',syd,0))
from tblname
group by id以上是lb类型只有三种,而且只有上面的组合的情况,如果有其它情况,你可以根据上面的再改一改使用。
先将id,lb,syd 选出,然后将id,tm1,td1 选出,然后将id,tm2,tm2 选出.
然后将三个表join 到同一个表中,在进行汇总.
具体的sql 我试一试再发.
先将id,lb,syd 选出,然后将id,tm1,td1 选出,然后将id,tm2,tm2 选出.
然后将三个表union 到同一个表中,再进行汇总.
具体的sql 我试一试再发.