declare @sql varchar(8000)
set @sql ='select 住院号,姓名,'
select @sql=@sql+'max(case when 费用名称='''+a.费用名称+''' then 金额 else 0 end),'
from 费用编码表 a
set @sql =@sql+'from t_feiyong group by 住院号,姓名'
exec(@sql)
set @sql ='select 住院号,姓名,'
select @sql=@sql+'max(case when 费用名称='''+a.费用名称+''' then 金额 else 0 end),'
from 费用编码表 a
set @sql =@sql+'from t_feiyong group by 住院号,姓名'
exec(@sql)
set @sql ='select 住院号,姓名,'
select @sql=@sql+'max(case when 费用名称='''+a.费用名称+''' then 金额 else 0 end),'
from 费用编码表 a
set @sql =left(@sql,len(@sql)-1)+'from t_feiyong group by 住院号,姓名'
exec(@sql)
set @sql ='select 住院号,姓名,'
select @sql=@sql+' max(case when 费用名称='''+a.费用名称+''' then 金额 else 0 end),'
from 费用编码表 a
set @sql =left(@sql,len(@sql)-1)+' from t_feiyong group by 住院号,姓名'
exec(@sql)
declare @sql varchar(8000)
--生成查询的SQL语句
set @sql='select 住院号,姓名'
select @sql=@sql+',max(case when 费用名称='''+费用名称+''' then 金额 end) as '+费用名称
from (select distinct 费用名称 from t_feiyong) a
set @sql=@sql+' from t_feiyong group by 住院号,姓名'--执行生成的SQL来得到结果
exec(@sql)
set @sql='select 住院号,姓名'
select @sql=@sql+',max(case when 费用名称='''+费用名称+''' then 金额 else 0 end) ['+费用名称+']' from (select distinct 费用名称 from t_feiyong) a
exec(@sql+' from t_feiyong group by 住院号,姓名')