单号 金额
001 10
001 20
002 20
结果
单号 金额1 金额2
001 10 20
002 20 null
sql如何按条件把相同记录合并成一条记录?
答案:4 悬赏:80 手机版
解决时间 2021-03-11 10:11
- 提问者网友:你挡着我发光了
- 2021-03-11 05:16
最佳答案
- 五星知识达人网友:持酒劝斜阳
- 2021-03-11 05:56
楼主要实现的是金额动态列吧! 动态列的实现一般可以用两部来实现,第一步拼接group 出SQL,第二步拼接sql ,比如楼主的需求可以这样来实现
1: select 'sum (case when 金额 = '' '金额' '' then 金额 else 0 end) ' from 数据表 group by 金额
2: 将上面的结果字符 用程序处理并拼接起来,可以得到,拼接后的结果如下:
select 单号 ,sum (case when 金额 = 金额1 then 金额 else 0 end) as 金额1 ,
sum (case when 金额 = 金额2 then 金额 else 0 end) as 金额2
from 数据表 group by 单号
1: select 'sum (case when 金额 = '' '金额' '' then 金额 else 0 end) ' from 数据表 group by 金额
2: 将上面的结果字符 用程序处理并拼接起来,可以得到,拼接后的结果如下:
select 单号 ,sum (case when 金额 = 金额1 then 金额 else 0 end) as 金额1 ,
sum (case when 金额 = 金额2 then 金额 else 0 end) as 金额2
from 数据表 group by 单号
全部回答
- 1楼网友:空山清雨
- 2021-03-11 10:17
SELECt id,
MAX(DECODE(money,10,money,NULL)) "10",
MAX(DECODE(money,20,money,NULL)) "20"
FROM t
GROUP BY id ;
- 2楼网友:想偏头吻你
- 2021-03-11 08:45
是mssql 嘛?
- 3楼网友:不甚了了
- 2021-03-11 07:06
不清楚你的数据会不会有两笔同时存在,但不同值的数据
如果只是上面的这种数据可以这样来实现
select col1,max(col2) as col2,max(col3) as col3,max(col4) as col4 from table group by col1
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯