sql server 2005 查询语句怎样写?

原先一条SQL语句查询出来的结果集不为空,再给定一组姓名如:张三、李四、王五,这组姓名不是查询出来的,是人为给定的。要求就给定的这组人名,和原SQL语句查询结果集中的a字... 原先一条SQL语句查询出来的结果集不为空,再给定一组姓名如:张三、李四、王五,这组姓名不是查询出来的,是人为给定的。
要求就给定的这组人名,和原SQL语句查询结果集中的a字段(姓名)所有值相比较,如果不存在,就在原结果集中增加一条记录,并给其b、c字段分别赋值为0,如果存在,则原值保持不变。示例如下:
原来查询出的结果:
a b c
张三 112 12
赵四 98 13
现给定一组姓名:张三、李四、王五、赵四
想要的结果:
a b c
张三 112 12
赵四 98 13
李四 0 0
王五 0 0
要求:一条语句(融合原先语句),怎样实现?
展开
 我来答
blademaster717
推荐于2016-02-13 · TA获得超过1457个赞
知道小有建树答主
回答量:882
采纳率:97%
帮助的人:438万
展开全部
select a,sum(b) as b,sum(c) as c from 
(
select a,b,c from table
union
select '张三',0,0 
union
select '赵四',0,0 
union
select '李四',0,0 
union
select '王五',0,0 
) a1
group by a

 【oracle】的话

select a,sum(b) as b,sum(c) as c from 
(
select a,b,c from table
union
select '张三',0,0 from dual
union
select '赵四',0,0 from dual 
union
select '李四',0,0 from dual 
union
select '王五',0,0 from dual 
) a1
group by a
追问
union后面要加的“select 姓名,0,0”语句的个数是完全按照“给定的姓名”来的吧?不是“给定的姓名”+原查询出来的姓名吧!
追答
“给定的姓名”+原查询
select a,b,c from table 这个就把原有所有的记录给查出来了
再union“给定的姓名”的数据
一共有的所有人的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式