LEFT OUTERで2つのテーブルを比較するクエリを取得しようとしています.2つのテーブルをジョインして、正しいテーブルに一致しない結果を見つけようとしています。問題は、TicketNo、ItemNo、UniqueIDの複合キーがあり、特定のTicketNoに対して最も高いUniqueIDを持つ行のみを比較する必要があることです。複合キーの1つの部分のMAX値に結合
私のプログラムは、作業コピーテーブルを更新する必要があるかどうか、もしそうなら更新する必要がある行を知るために、データが必要です。
は基本的に私が欲しいものである。この:
SELECT TicketNo
FROM History t1
LEFT OUTER JOIN Working t2 on
max(t1.[UniqueID])=t2.[UniqueID]
AND t1.[TicketNo]=t2.[TicketNo]
AND t1.[ItemNo]=t2.[ItemNo]
WHERE t2.[TicketNo] IS NULL
しかし、私はここに集約関数maxを使用することはできません。特定のTicketNoの最大ユニークID だけを取得するには、どのようにサブクエリを使用できるか(またはCTEに失敗しましたが、サブクエリを使用することはできません)わかりません。私はテーブル内の最も高いuniqueIDに参加するだけではできません。私は最初行を返すようにしたい。この場合、
TicketNo UniqueID ItemNo
15 1270662207 1
15 1184857061 1
:
私のデータは、2つの複製を想定し、このようになります。私の作業テーブルにTicketNo 15
の古い行があるかどうかは気にしません。
heh、あなたは自分のデータと一致させる必要はありませんでした。 WOrksは魅力が好きです。 –