select
b.userName,
sum(case when a.type=1 then a.type else 0 end) type1,
sum(case when a.type=2 then a.type else 0 end) type2,
sum(case when a.type=3 then a.type else 0 end) type3
from typeTable a
left join userTable b on a.userid=b.userid
试试这个
b.userName,
sum(case when a.type=1 then a.type else 0 end) type1,
sum(case when a.type=2 then a.type else 0 end) type2,
sum(case when a.type=3 then a.type else 0 end) type3
from typeTable a
left join userTable b on a.userid=b.userid
试试这个
解决方案 »
- java操作修改XML org.w3c.dom
- java.lang.NumberFormatException: null
- spring 指定通知方法问题
- 页面实现"下一步"功能
- 如何替换properties文件中的冒号啊?
- 急死了,帮忙啊
- 急,怎么连<%=request.getRealPath("../../")%>都报错啊!
- 请你评价一下jsp+sql server 2000和asp+sql server 2000的优缺点!!!
- 在Jsp中使用JavaBean问题!!!急,在线等待
- jsp中汉字显示的问题!!各位高人快来救命呀!!!!
- pdf 转 jpg jpg变模糊
- java web项目,不能生成图片
select
b.userName,
sum(case when a.type=1 then a.money else 0 end) type1,
sum(case when a.type=2 then a.money else 0 end) type2,
sum(case when a.type=3 then a.money else 0 end) type3
from typeTable a
left join userTable b on a.userid=b.userid
select
userId,
sum(case when 'type' = 1 then money else 0 end) as type1,
sum(case when 'type' = 2 then money else 0 end) as type2,
sum(case when 'type' = 3 then money else 0 end) as type3
from tab group by userId;你试试
1、你这种需求必须要以user表为中心。
2、left join (这里放每个usertype表的查询,安装用户的userid进行分组。这里必须就要带出type1、type2、type3出来,通过case when 来解决这个问题)
我的SQL语句是SELECT b.id,b.money,b.loginname,round(sum(case when e.type='cz' then e.money else 0 end),2) cz,round(sum(case when e.type='tx' then e.money else 0 end),2) tx,round(sum(case when e.type='pj' then e.money else 0 end),2) pj,round(sum(case when e.type='fd' then e.money else 0 end),2) fd,round(sum(case when e.type='tz' then e.money else 0 end),2) tz FROM emep_account e left join emep_user b on e.parentid=55 and e.userid=b.id group by e.userid
现在的结果是这样
id money loginname cz tx pj fd tz
NULL NULL NULL 0.00 0.00 0.00 0.00 20.00
NULL NULL NULL 100.00 0.00 0.00 0.00 0.00
NULL NULL NULL 10200.00 100.00 0.00 0.00 0.00
58 204.262 4444 100.00 0.00 0.00 0.00 0.00
NULL NULL NULL 1000.00 0.00 0.00 0.00 0.00
NULL NULL NULL 100.00 0.00 0.00 0.00 0.00
NULL NULL NULL 10000.00 0.00 0.00 0.00 0.00
我的SQL语句是SELECT b.id,b.money,b.loginname,round(sum(case when e.type='cz' then e.money else 0 end),2) cz,round(sum(case when e.type='tx' then e.money else 0 end),2) tx,round(sum(case when e.type='pj' then e.money else 0 end),2) pj,round(sum(case when e.type='fd' then e.money else 0 end),2) fd,round(sum(case when e.type='tz' then e.money else 0 end),2) tz FROM emep_account e left join emep_user b on e.parentid=55 and e.userid=b.id group by e.userid
现在的结果是这样
id money loginname cz tx pj fd tz
NULL NULL NULL 0.00 0.00 0.00 0.00 20.00
NULL NULL NULL 100.00 0.00 0.00 0.00 0.00
NULL NULL NULL 10200.00 100.00 0.00 0.00 0.00
58 204.262 4444 100.00 0.00 0.00 0.00 0.00
NULL NULL NULL 1000.00 0.00 0.00 0.00 0.00
NULL NULL NULL 100.00 0.00 0.00 0.00 0.00
NULL NULL NULL 10000.00 0.00 0.00 0.00 0.00
搞定了把做外连接的表换下,判断左边的。