sql查询的问题 如何查出一个表内的满足条件的值的sum
表A:姓名收费编号张三001表B收费编号学费应收住宿费应收00160001000表C收费编号已收费用费用类别0014000学费0012000学费001700住宿费0014...
表A:
姓名 收费编号
张三 001
表B
收费编号 学费应收 住宿费应收
001 6000 1000
表C
收费编号 已收费用 费用类别
001 4000 学费
001 2000 学费
001 700 住宿费
001 40 住宿费
类似上表,我想查到以下结果
姓名 收费编号 学费应收 住宿费应收 学费已收 住宿费已收
张三 001 6000 1000 6000 740 展开
姓名 收费编号
张三 001
表B
收费编号 学费应收 住宿费应收
001 6000 1000
表C
收费编号 已收费用 费用类别
001 4000 学费
001 2000 学费
001 700 住宿费
001 40 住宿费
类似上表,我想查到以下结果
姓名 收费编号 学费应收 住宿费应收 学费已收 住宿费已收
张三 001 6000 1000 6000 740 展开
1个回答
展开全部
select
a.姓名,
a.收费编号,
b.学费应收,
b.住宿费应收,
sum(case when c.费用类别='学费' then 已收费用 end) 学费已收,
sum(case when c.费用类别='住宿费' then 已收费用 end) 住宿费已收
from a,b,c where a.姓名=b.姓名 and a.收费编号=b.收费编号 a.收费编号=c.收费编号
group by
a.姓名,
a.收费编号,
b.学费应收,
b.住宿费应收
a.姓名,
a.收费编号,
b.学费应收,
b.住宿费应收,
sum(case when c.费用类别='学费' then 已收费用 end) 学费已收,
sum(case when c.费用类别='住宿费' then 已收费用 end) 住宿费已收
from a,b,c where a.姓名=b.姓名 and a.收费编号=b.收费编号 a.收费编号=c.收费编号
group by
a.姓名,
a.收费编号,
b.学费应收,
b.住宿费应收
更多追问追答
追问
实在是太感谢badkano啦!如果已收费用是varchar数据类型呢?
追答
你是什么数据库呀?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |