我正在一個項目上工作,我很難過。我有2個網站接受訂單。這些數據庫位於同一臺服務器上。每個網站將訂單數據存儲到不同數據庫中的表格中。主站點使用「dbo.Orders」,這是用於將數據提供給我們的aspdotnetstorefront後端的表。我們的銷售人員使用此界面來查看訂單。輔助站點使用「dbo.orders」,這是用於存儲訂單的表格。第二個網站的訂單不能在aspdotnetstorefront上訪問。我的工作是將來自輔助站點的訂單合併到主站點的表中,以便可以在aspdotnetstorefront後端上看到訂單,就像來自主站點的訂單一樣。我還必須創建一個標識符,以便在查看銷售人員知道訂單來自哪個網站時。我認爲創建一個臨時表,也許外部連接或合併?問題是表格沒有匹配的字段。任何建議,將不勝感激。合併來自不同數據庫的2個表沒有匹配字段到SQL Server上的臨時表
-1
A
回答
1
您可以使用UNION ALL
到記錄
SELECT 1 as SiteID,
* -- common fields
FROM Database1.dbo.Orders
UNION ALL
SELECT 2 as SiteID,
* -- common fields
FROM Database2.dbo.Orders
領域結合起來,Database2.dbo.Orders必須是同一類型,如Database2.dbo.Orders領域。例如,以下內容不起作用。
SELECT 1 as SiteID,
CustomerName -- VARCHAR
UNION ALL
SELECT 2 as SiteID,
OrderDate -- DATETIME
添加填料,如果你需要,如果一列只存在於一個表,你需要把它列入查詢。
SELECT 1 as SiteID,
CustomerName as CustomerName,
NULL as OrderDate -- filler to match OrderDate
FROM Database1.dbo.Orders
UNION ALL
SELECT 2 as SiteID,
'', -- filler to match CustomerName
OrderDate
FROM Database1.dbo.Orders
要創建一個臨時表,你可以在INTO [TABLE]
語法添加到第一選擇。同樣使用您的OrderNumber
ordId
字段
SELECT 1 as SiteID,
OrderNumber
INTO #temp -- create temp table to hold all rows generated from union
FROM Database1.dbo.Orders
UNION ALL
SELECT 2 as SiteID,
ordId -- will appear in second column [OrderNumber]
FROM Database2.dbo.Orders
相關問題
- 1. SQL Server將多個行合併爲一個 - 沒有臨時表
- 2. 比較來自2個不同表格的匹配列數據
- 3. 如何在SQL Server 2008中合併來自2個數據庫的表格
- 4. 使用臨時表合併來自不同數據庫的查詢結果
- 5. 混合來自2個不同表格的數據庫結果
- 6. SQL Server的臨時表更新字段
- 7. 沒有臨時表的SQL Server 2000數據透視表?
- 8. 合併來自兩個不同數據庫的兩張子表
- 9. 合併來自三個不同數據庫表的列
- 10. 合併來自兩個不同數據庫的表格(Python)
- 11. 合併2個SQL Server數據庫
- 12. 比較來自2個不同數據庫的2個不同數據表列
- 13. 如何使用索引合併來自SQL SERVER中的2個表的數據
- 14. 來自列的SQL拆分數據與來自不同表的數據合併
- 15. 匹配來自不同行數的兩個表的數據
- 16. SQL Server聯合臨時表
- 17. 來自2個不同匹配字段的Awk求和列
- 18. 合併來自多個MS SQL Server數據庫的數據到一個
- 19. 將來自不同表格的數據合併到日期範圍之間的一個表中SQL Server
- 20. 從2個不同的數據庫,2個不同的表Linq到SQL bulkupdate
- 21. 合併來自不同訪問數據庫的表
- 22. 創建視圖合併來自2個表的所有數據
- 23. 合併2代表具有不同的數據庫
- 24. 2個不同熊貓數據幀的「軟匹配/合併」
- 25. 比較和合並來自2個具有相同結構的表的數據
- 26. 匹配數據庫表中的任何字段集合
- 27. PHP/MySQL - 比較來自2個不同數據庫的表格
- 28. 加入來自不同數據庫的2個表
- 29. 匹配來自兩個不同表的兩個不同的列
- 30. SQL臨時數據庫,臨時表和表之間的區別
只是另一個小問題。 dbo.Orders有20多個字段。 dbo.orders也是如此。名稱必須完全匹配嗎?例如dbo.Orders有OrderNumer,dbo.orders有ordID。同一件事,但名稱不同。這些合併或將所有不同的名稱字段必須是「填充」? – Fred
我也在做臨時表嗎? – Fred
名稱不必匹配..只是數據類型..所以只要'OrderNumber'和'ordID'都是相同的類型就可以了。如果你需要也可以轉換類型。 UNION ALL將使用第一個選擇字段中的名稱作爲下面所有表的列名。這不是做臨時表。只是一個查詢。如果你願意,你當然可以把結果插入臨時表中。 – JamieD77