簡體   English   中英

如何將單個數據庫調用中兩個表中的數據合並到同一列中?

[英]How do I merge data from two tables in a single database call into the same columns?

如果我批量運行這兩個語句,它們會將合並后的數據的一張表返回兩個到我的sqlcommand對象。 我想做的是通過兩次搜索來優化搜索,第一次是搜索一組數據,然后是第二次。 它們具有相同的字段,我希望兩個表中的所有記錄都顯示並相互添加。 我需要這樣做,以便可以在兩組數據之間對數據進行排序,但是由於缺少編寫存儲過程的方法,所以我無法想到這樣做的方法。

例如。 表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

也許您在尋找UNION?

IE瀏覽器:

SELECT A, B FROM Table1
UNION
SELECT A, B FROM Table2

可能:

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

編輯:也許您會從計數之前合並表中受益。 例如

select id, count() as count from
(select id from table1
 union all
 select id from table2)

我不確定我是否完全理解,但您似乎在詢問聯盟

SELECT A,B
FROM tableX
UNION ALL
SELECT A,B
FROM tableY

為此,您可以執行以下操作:

SELECT * INTO TABLE3 FROM TABLE1
UNION
SELECT * FROM TABLE2

如果兩個表具有相同的列

我認為您正在尋找的是這個,但是我不確定我是否正確理解您的語言。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM