0

2 つのテーブルを 1 つにマージし、その隣にカウンターを追加したいと考えています。私が今持っているのは

SELECT [CUCY_DATA].*, [DIM].[Col1], [DIM].[Col2], 
  (SELECT COUNT([Cut Counter]) FROM [MSD] 
   WHERE [CUCY_DATA].[Cut Counter] = [MSD].[Cut Counter]
   ) AS [Nr Of Errors] 
FROM [CUCY_DATA] FULL JOIN [DIM] 
    ON [CUCY_DATA].[Cut Counter] = [DIM].[Cut Counter]

このようにデータが挿入されますが、値が一致しない場合は null が挿入されます。たとえばこれが欲しい

テーブル CUCY_DATA

|_Cut Counter_|_Data1_|_Data2_|
|      1      |   12  |   24  |
|      2      |   13  |   26  |
|      3      |   10  |   20  |
|      4      |   11  |   22  |

テーブル DIM

|_Cut Counter_|_Col1_|_Col2_|
|      1      |   25  |   40  |
|      3      |   50  |   45  |

そして、それらは次のようにマージする必要があります:

|_Cut Counter_|_Data1_|_Data2_|_Col1_|_Col2_|
|      1      |   12  |   24  |  25  |  40  |
|      2      |   13  |   26  |  25  |  40  |
|      3      |   10  |   20  |  50  |  45  |
|      4      |   11  |   22  |  50  |  45  |

これは間違っています:

|_Cut Counter_|_Data1_|_Data2_|_Col1__|_Col2__|
|      1      |   12  |   24  |  25   |   40  |
|      2      |   13  |   26  |  NULL |  NULL |
|      3      |   10  |   20  |  50   |   45  |
|      4      |   11  |   22  |  NULL |  NULL |

敬具、ボブ

4

1 に答える 1

0

DIM テーブルに対応する行がない場合、col1 と col2 の値をどのように取得していますか? (行 2 および 4)。あなたの「間違った」結果は正確です。それが外部結合の機能です。

于 2013-10-14T15:49:25.077 に答える