はちょうどあなたのテーブルの構造に関する情報がないことから推測するが、問題はその可能性がある参照することを意図している場合Criteria_Mattersテーブルには、指定されたclientCorporationIDのレコードが多数あります。したがって、一致するCriteria_Matters.ClientCorporationIDレコードの数に基づいて、OM_Table1のすべてのレコードを複製します。
これに対処する方法がいくつかあります.1つは、完全なCriteria_Mattersテーブルに参加する代わりにインラインビューを使用する方法です。
インラインビューとGROUP BY Criteria_Matters.ClientCorporationIDを追加すると、結合テーブルにClientCorporationIDごとに1つのレコードしか存在しないことが保証され、重複したレコードは取得されません。もちろん、clientCorporationIDでグループ化しているので、Sales_Stageに集約関数を適用する必要があります。 MAX(Sales_Stage)を選択するだけで、最大値が何であれ取得できます。 Sales_Stageが特定のclientCorporationIDごとに同じであることが分かっている場合は、すべて設定されています。 clientCorporationIDとSales_Stage両方であなたができるグループ -
SELECT om.*, cm.Sales_Stage
FROM dbo.OM_Table1 om
INNER JOIN
(
SELECT clientCorporationID, MAX(Sales_Stage) AS Sales_Stage
FROM dbo.Criteria_Matters
GROUP BY clientCorporationID
) cm ON cm.clientCorporationID = om.ClientCorporationID
ORDER BY om.ClientCorporationID
しかし、与えられたclientCorporationIDに異なるSales_Stage値がCriteria_Mattersテーブルに存在する場合:SQLは、次のようになります。これを行うと、OM_Table1レコードが複製されますが、Criteria_MattersのClientCorporationIDに対応する一意のSales_Stageごとにのみレコードが複製されます。 SQLは次のようになります。
SELECT om.*, cm.Sales_Stage
FROM dbo.OM_Table1 om
INNER JOIN
(
SELECT clientCorporationID, Sales_Stage
FROM dbo.Criteria_Matters
GROUP BY clientCorporationID, Sales_Stage
) cm ON cm.clientCorporationID = om.ClientCorporationID
ORDER BY om.ClientCorporationID
幸運を!
つまり、 'dbo.Criteria_Matters'テーブルに' clientCorporationID'ごとに複数の行があることを意味します。 – Lamak
お手伝いします。テーブルの構造、サンプルデータ、そしてそのサンプルについて得たい結果を共有してください。 – Mureinik
あなたの問題は、あなたが何かを引っ張っているということです。* ..... – logixologist