2012-03-08 9 views
0

私は2つのテーブルを比較しているSQLのselect文を持っています。私は行が同じである値を取得しています。今私は新しいテーブル(coftReconciliationMatches)にこれらを追加するために必要な手順でこれを持っています。テーブルにはすべて同じ列がありますが、もう1つは 'MatchOrNoMatch'です。一致した行の値を渡す必要があります。また、 'MatchOrNoMatch'の列に 'Match'を渡す必要があります。テーブルのSELECTの結果を追加する方法

これは私が持っているSQLスクリプトの現在の部分です。このため

SELECT * 
    FROM dbo.coftReconciliationFileInfo AS a 
WHERE EXISTS (SELECT * 
       FROM dbo.coftPreReconciliationInfo AS b 
       WHERE a.Rec_PK = b.Rec_PK 
        AND a.ExtRef1 = b.ExtRef1 
        AND a.SedolRef = b.SedolRef 
        AND a.ValLatest = b.ValLatest 
        AND a.Totunits = b.Totunits 
        AND a.FundsOrCash = b.FundsOrCash) 

答えて

2

列の多くを比較し、SELECT INTERSECTとEXCEPT SELECT:あなたがする必要があるhttp://www.1keydata.com/sql/sqlinsert.html

+0

大変ありがとうございます!このメソッドを実行する方法はありますか?一致しない場合 – Jacooobley

+0

コードの偉大な部分を今では心配しないでください! – Jacooobley

+0

'SELECT ... EXCEPT ...'は、2番目のセットではなく、最初のセットのすべてを取得します。 –

0
INSERT INTO [table] ([col1], [col2]) SELECT colx, ... 
0

使用Select Into

INSERT INTO Table (column1, column2..) 
(SELECT column1, column2 .... 
    FROM dbo.coftReconciliationFileInfo AS a 
WHERE EXISTS (SELECT * 
       FROM dbo.coftPreReconciliationInfo AS b 
       WHERE a.Rec_PK = b.Rec_PK 
        AND a.ExtRef1 = b.ExtRef1 
        AND a.SedolRef = b.SedolRef 
        AND a.ValLatest = b.ValLatest 
        AND a.Totunits = b.Totunits 
        AND a.FundsOrCash = b.FundsOrCash)) 
0

を参照してください。コマンドを使用すると、多くの労力を節約できます。

INSERT dbo.coftReconcilliationMatches 
    (Rec_PK, ExtRef1, SedolRef, ValLatest, Totunits, FundsOrCash, MatchOrNoMatch) 
select Rec_PK, ExtRef1, SedolRef, ValLatest, Totunits, FundsOrCash, 'Match' 
    from dbo.coftReconciliationFileInfo 
intersect select Rec_PK, ExtRef1, SedolRef, ValLatest, Totunits, FundsOrCash, 'Match' 
    from dbo.coftPreReconciliationFileInfo 

(タイプミスをチェックしてください!)

あなたがフライ(私はやってお勧めしません何か)にテーブルを作成する場合は、SELECT INTOを使用すると思います。

0

も参照

INSERT INTO <your table> (<list of columns>) 
SELECT <list of columns from select>, '<the additional column>' FROM dbo.coftReconciliationFileInfo AS a 
WHERE EXISTS(SELECT * FROM dbo.coftPreReconciliationInfo AS b 
WHERE a.Rec_PK = b.Rec_PK AND a.ExtRef1 = b.ExtRef1 AND a.SedolRef = b.SedolRef AND  a.ValLatest = b.ValLatest AND a.Totunits = b.Totunits AND a.FundsOrCash = b.FundsOrCash) 

:ような何かを試してみてくださいここhttp://www.w3schools.com/sql/sql_select_into.asp

関連する問題