求一SQL语句,两条数据合并为一条

小小骨头 2012-09-07 02:57:54
name subname price amount
a Aa 100 null
a Aa 90 5

结果
name subname price amount
a Aa 100 5

可能例子不是很恰当,但是我想要的效果就是这样的
求哪位大侠指教一下
...全文
245 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
q465897859 2012-09-07
  • 打赏
  • 举报
回复
declare @test table(name varchar(1), subname varchar(2), price int, amount int)
insert into @test
select 'a', 'Aa', 100, null union all
select 'a', 'Aa', 90, 5

select name,subname,MAX(price) price,MAX(amount) amount from @test group by name,subname
小小骨头 2012-09-07
  • 打赏
  • 举报
回复
我问题描述的不清楚,分数给第一个人了
小小骨头 2012-09-07
  • 打赏
  • 举报
回复
我的需求是两条数据合成一条数据,不是sum

把5移到上面null的地方,这样合成一条数据。
  • 打赏
  • 举报
回复
是这样否?


declare @test table(name varchar(1), subname varchar(2), price int, amount int)
insert into @test
select 'a', 'Aa', 100, null union all
select 'a', 'Aa', 90, 5

select name,
subname,
price=(select top 1 price from @test
where t.name=name and t.subname=subname order by price desc),
amount=(select top 1 amount from @test
where t.name=name and t.subname=subname order by amount desc)
from (select distinct name,subname from @test) t

/*
name subname price amount
---- ------- ----------- -----------
a Aa 100 5

*/
shoppo0505 2012-09-07
  • 打赏
  • 举报
回复

with tb as
(
select 'a' as name, 'Aa' as subname, 90 as price, 5 as amount

union all

select 'a', 'Aa', 100, null
)
select name, subname, max(price), max(amount)
from tb
group by name, subname
發糞塗牆 2012-09-07
  • 打赏
  • 举报
回复
勉强给你拼一个,仅用于你这个例子:
select name ,subname,price,sum(amount) amount
from
(
select name,subname,price,0 as amount
from 表
where amount is null
union all
select name,subname,price, amount
from 表
where amount is not null

)
group by name ,subname,price

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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