2016-07-14 184 views
-2

在一個數據庫中,我有如下三個表:如何連接3臺MSSQL服務器

enter image description here

我想將它們串聯在一些單個表,什麼建議嗎?

+0

* concatenate *是什麼意思?你可以連接兩個字符串 - 但不是多個表....定義你期望的輸出! –

+0

你想創建一個包含所有值的表嗎?你想匹配不同的提議,並返回一個數據集,其中包含所有可用的值?我們需要您更詳細地回答您的問題。嘗試給我們一個預期的輸出。 –

+0

只想將它們合併到一張表中,而不必關心提案ID是否匹配。在決賽桌中,我們可以使用proposalid_1,proposalid_2,proposalid_2。無論哪個行不相同,我們都可以使用NULL。 – Tariq

回答

0

感謝。

SELECT mtlreq.proposalid, mtlreq.prp_mtlreq_taskgrp,mtlreq.prp_mtlreq_taskcode,mtlreq.prp_mtlreq_itemcode,mtlreq.prp_mtlreq_rateper,mtlreq.prp_mtlreq_qty,mtlreq.prp_mtlreq_Inter_MaterCost,mtlreq.prp_mtlreq_UOM,mtlreq.item_short_desc, resreq.proposalid,resreq.prp_resreq_taskcode ,resreq.prp_resreq_resource,resreq.prp_resreq_usage,resreq.prp_resreq_uom,resreq.prp_resreq_rate,resreq.prp_resreq_overhd_pers 
FROM (
    SELECT proposalid,prp_mtlreq_taskgrp,prp_mtlreq_taskcode,prp_mtlreq_itemcode,prp_mtlreq_rateper,prp_mtlreq_qty,prp_mtlreq_Inter_MaterCost,prp_mtlreq_UOM,item_short_desc, 
      ROW_NUMBER() OVER (ORDER BY proposalid) AS rn 
    FROM prjdet_prp_taskwork_mtlreq ) AS mtlreq 
FULL OUTER JOIN (
    SELECT proposalid,prp_resreq_taskcode ,prp_resreq_resource,prp_resreq_usage,prp_resreq_uom,prp_resreq_rate,prp_resreq_overhd_pers, 
      ROW_NUMBER() OVER (ORDER BY proposalid) AS rn 
    FROM prjdet_prp_taskwork_resreq) AS resreq 
ON mtlreq.rn = resreq.rn 
FULL OUTER JOIN (
SELECT proposalid,mtprp_delv_lineno,mtprp_delv_itemcode,mtprp_delv_cost,mtprp_delv_linelevelmrg,mtprp_delv_proposedamt, 
      ROW_NUMBER() OVER (ORDER BY proposalid) AS rn 
    FROM prjproposal_delidtl) AS delidtl 
    on mtlreq.rn = delidtl.rn and resreq.rn=delidtl.rn 
0

如果我理解正確的答案,你想是這樣的:

CREATE TABLE COMBINED (/*Insert the set of fields here*/); 
GO 

INSERT INTO COMBINED 
    SELECT Table1.ProposalId 
     , /*all other Table1 fields*/ 
     , Table2.ProposalId 
     /*all other Table2 fields*/ 
     , Table3.ProposalId 
     , /*all other Table2 fields*/ 
    FROM Table1 
    FULL JOIN Table2 
     ON Table1.ProposalId = Table2.ProposalId 
    FULL JOIN Table3 
     ON Table1.ProposalId = Table3.ProposalId; 

這將匹配具有相同的提案編號行(但保留所有的值proposalid_1,proposalid_2 ...和對於那些不匹配會帶來全行NULL對錶的其餘部分的每一個領域。對你有所幫助的問題已經解決

+0

嗨查詢正在合併,但重複的價值即將到來 – Tariq

相關問題