sql 两个集合合并
答案:4 悬赏:40
解决时间 2021-02-15 18:47
- 提问者网友:临风不自傲
- 2021-02-15 06:13
sql 两个集合合并
最佳答案
- 二级知识专家网友:第幾種人
- 2021-02-15 06:50
union .
比如:
select * from A
union
select * from B
追问:我要是两个集合合并,你这个就把第二个集合并在第一个下面,我要的是“7”列数据
追答:--哦,不好意思,看错了,用如下的吧:
--假设几个列分别是name,a(2013),b(2014),c(2015)
select name,A.a+B.a,A.b+B.b,A.c+B.c from A ,B where A.name=B.name
比如:
select * from A
union
select * from B
追问:我要是两个集合合并,你这个就把第二个集合并在第一个下面,我要的是“7”列数据
追答:--哦,不好意思,看错了,用如下的吧:
--假设几个列分别是name,a(2013),b(2014),c(2015)
select name,A.a+B.a,A.b+B.b,A.c+B.c from A ,B where A.name=B.name
全部回答
- 1楼网友:往事隔山水
- 2021-02-15 09:49
把以上两查询作为from字句的表连接不就可以了。
追问:两个集合,是并列关系,不是上下合并
追答:是啊,在from字句中把两个查询当做两个表。
select a.*,b.* from (第一段) as a ,(第二段) as b where a.S_BZNAME=b.S_BZNAME
追问:两个集合,是并列关系,不是上下合并
追答:是啊,在from字句中把两个查询当做两个表。
select a.*,b.* from (第一段) as a ,(第二段) as b where a.S_BZNAME=b.S_BZNAME
- 2楼网友:老鼠爱大米
- 2021-02-15 08:43
两个语句当成分语句 用名字关联一下就出来了
追问:两个集合,是并列关系,不是上下合并
追问:两个集合,是并列关系,不是上下合并
- 3楼网友:一叶十三刺
- 2021-02-15 08:02
select s_bzname, sum(2013fjl) as 2013fjl, sum(2014fjl) as 2014fjl, sum(2015fjl) as 2015fjl, sum(2013hlfjl) as 2013hlfjl, sum(2014hlfjl) as 2014hlfjl, sum(2015hlfjl) as 2015hlfjl
((select s_bzname , [2013] as 2013fjl , [2014] as 2014fjl , [2015] as 2015fjl , 0 as 2013hlfjl , 0 as 2014hlfjl, 0 as 2015hlfjl from ...........................)
union
(select s_bzname , 0 as 2013fjl , 0 as 2014fjl , 0 as 2015fjl , [2013] as 2013hlfjl , [2014] as 2014hlfjl, [2015] as 2015hlfjl from ...........................))
group by s_bzname
or
select * from (select s_bzname , [2013] as 2013fjl , [2014] as 2014fjl , [2015] as 2015fjlfrom ...........................) a , ( select s_bzname[2013] as 2013hlfjl , [2014] as 2014hlfjl, [2015] as 2015hlfjl from .....................) bwhere a.s_bzname = b.s_bzname追答
追问:我要是两个集合合并,你这个就把第二个集合并在第一个下面,我要的是“7”列数据
追答:所以第一种方式要用分组。
select s_bzname , [2013] as 2013fjl , [2014] as 2014fjl , [2015] as 2015fjl , 0 as 2013hlfjl , 0 as 2014hlfjl, 0 as 2015hlfjl from ...........................
这是7列。最终分组求和
第二种方式直接用两表关联查询,可根据实际情况选择左或右或全连接
追问:select S_BZNAME, [2013] as [2013fjl],[2014] as [2014fjl],[2015] as [2015fjl] from ( select S_BZNAME,sum(N_FJLL)as N_FJLL
,convert(varchar,Year(T_time)) as T_TIMEfrom dbo.T_BZFJL
((select s_bzname , [2013] as 2013fjl , [2014] as 2014fjl , [2015] as 2015fjl , 0 as 2013hlfjl , 0 as 2014hlfjl, 0 as 2015hlfjl from ...........................)
union
(select s_bzname , 0 as 2013fjl , 0 as 2014fjl , 0 as 2015fjl , [2013] as 2013hlfjl , [2014] as 2014hlfjl, [2015] as 2015hlfjl from ...........................))
group by s_bzname
or
select * from (select s_bzname , [2013] as 2013fjl , [2014] as 2014fjl , [2015] as 2015fjlfrom ...........................) a , ( select s_bzname[2013] as 2013hlfjl , [2014] as 2014hlfjl, [2015] as 2015hlfjl from .....................) bwhere a.s_bzname = b.s_bzname追答
追问:我要是两个集合合并,你这个就把第二个集合并在第一个下面,我要的是“7”列数据
追答:所以第一种方式要用分组。
select s_bzname , [2013] as 2013fjl , [2014] as 2014fjl , [2015] as 2015fjl , 0 as 2013hlfjl , 0 as 2014hlfjl, 0 as 2015hlfjl from ...........................
这是7列。最终分组求和
第二种方式直接用两表关联查询,可根据实际情况选择左或右或全连接
追问:select S_BZNAME, [2013] as [2013fjl],[2014] as [2014fjl],[2015] as [2015fjl] from ( select S_BZNAME,sum(N_FJLL)as N_FJLL
,convert(varchar,Year(T_time)) as T_TIMEfrom dbo.T_BZFJL
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯