如果我批量运行这两个语句,它们会将一个表返回到我的sqlcommand对象,并将数据合并。我要做的是通过搜索两次来优化搜索,第一次在一组数据上,然后在另一组数据上。它们具有相同的字段,我希望两个表中的所有记录都显示并相互添加。我需要这个,以便我可以在两组数据之间对数据进行排序,但是没有编写存储过程,我想不出这样做的方法。
EG。表1包含列A和B,表2具有相同的列但具有不同的数据源。然后我想合并它们,这样如果一个列只存在于一个列中,它就被添加到结果集中,如果它们都存在,那么列B将在两个列之间求和。
请注意,这与完全外连接操作不同,因为它不会合并数据。
[编辑]
这是代码的样子:
Select * From
(Select ID,COUNT(*) AS Count From [Table1]) as T1
full outer join
(Select ID,COUNT(*) AS Count From [Table2]) as T2
on t1.ID = T2.ID
答案 0 :(得分:2)
也许您正在寻找UNION?
IE:
SELECT A, B FROM Table1
UNION
SELECT A, B FROM Table2
答案 1 :(得分:1)
可能:
select table1.a, table1.b
from table1
where table1.a not in (select a from table2)
union all
select table1.a, table1.b+table2.b as b
from table1
inner join table2 on table1.a = table2.a
编辑:也许你会在计算之前联合表中受益。 e.g。
select id, count() as count from
(select id from table1
union all
select id from table2)
答案 2 :(得分:0)
我不确定我是否完全理解但你似乎在问一个UNION
SELECT A,B
FROM tableX
UNION ALL
SELECT A,B
FROM tableY
答案 3 :(得分:0)
要做到这一点,你会去:
SELECT * INTO TABLE3 FROM TABLE1
UNION
SELECT * FROM TABLE2
如果两个表都具有相同的列
答案 4 :(得分:0)
我认为你在寻找的是这个,但我不确定我是否正确理解你的语言。
select id, sum(count) as count
from (
select id, count() as count
from table1
union all
select id, count() as count
from table2
) a
group by id