求:SQL 查询列并排对齐显示

spring159537 2015-12-15 03:32:51
求各位大神:

select ysks,czfl,sum(ypje)From yzlsz where rq>='2015-12-01'Group by ysks,czfl order by ysks,czfl
查询结果如下:
妇产科 护理费 164
妇产科 化验费 724
妇产科 检查费 60
妇产科 其他费 250.14
妇产科 手术费 8104.98
妇产科 输氧费 12
妇产科 西药费 5174.656
妇产科 诊察费 69
妇产科 治疗费 1210.072
妇产科 中成药 21.51
妇产科 住院费 920
骨外二区 草药费 6.966
骨外二区 放射费 1702.5
骨外二区 护理费 847
骨外二区 化验费 5527
骨外二区 检查费 2830
骨外二区 其他费 2584.3
骨外二区 手术费 20725.46
骨外二区 输氧费 8
骨外二区 西药费 20084.716
骨外二区 诊察费 285
骨外二区 治疗费 1668.541
骨外二区 中成药 2240.29
骨外二区 住院费 3162

妇产科费用有0的,想并排对齐查询,还有其他很多科室,其它科室收费项目也为可能是0的。想所有科室并排显示,便于输出。
想要结果如下:
妇产科 草药费 0 骨外二区 草药费 6.966
妇产科 放射费 0 骨外二区 放射费 1702.5
妇产科 护理费 164 骨外二区 护理费 847
妇产科 化验费 724 骨外二区 化验费 5527
妇产科 检查费 60 骨外二区 检查费 2830
妇产科 其他费 250.14 骨外二区 其他费 2584.3
妇产科 手术费 8104.98 骨外二区 手术费 20725.46
妇产科 输氧费 12 骨外二区 输氧费 8
妇产科 西药费 5174.656 骨外二区 西药费 20084.716
妇产科 诊察费 69 骨外二区 诊察费 285
妇产科 治疗费 1210.072 骨外二区 治疗费 1668.541
妇产科 中成药 21.51 骨外二区 中成药 2240.29
妇产科 住院费 920 骨外二区 住院费 3162
...全文
284 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

用程序来做成交叉表,会好一点,如图
CZP98168 2015-12-15
  • 打赏
  • 举报
回复
数据怎么呈现这活不是SQL Server该干的,让你的前台应用来处理吧!
  • 打赏
  • 举报
回复
这个用动态语句来实现就可以的。
Yole 2015-12-15
  • 打赏
  • 举报
回复

--查询
select isnull(b.ysks,'妇产科') as ysks ,isnull(b.czfl,a.czfl) as czfl,isnull(b.ypje,0) as ypje ,a.ysks,a.czfl,a.ypje, 
isnull(c.ysks,'XXXX科') as ysks ,isnull(c.czfl,a.czfl) as czfl,isnull(c.ypje,0) as ypje
from 
(
select ysks,czfl,sum(ypje) as ypje from #tab where ysks='骨外二区' Group by ysks,czfl
) a left join 
(
select ysks,czfl,sum(ypje) as ypje from #tab where ysks='妇产科' Group by ysks,czfl 
) b on a.czfl=b.czfl
left join 
(
select ysks,czfl,sum(ypje) as ypje from #tab where ysks='XXXX科' Group by ysks,czfl 
)c on a.czfl=c.czfl
Yole 2015-12-15
  • 打赏
  • 举报
回复
科室可是不多就手动写吧~~~ 脚本太费劲儿了~~
Yole 2015-12-15
  • 打赏
  • 举报
回复
可是不多就手动写吧~~~ 脚本太费劲儿了~~

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧