2016-11-29 7 views
0

以下のクエリでは、UPCに基づいてレコードが20レコードのうち400レコードを返します。言い換えれば、私はUPCに基づいて20の別個の記録が必要です。どうしたらいいですか?SQL結合で一意のレコードを計算する

select tc.ChainID,tc.UPC,tc.SupplierInvoiceNumber,pc.DateTimeCreated 
    from #tmpCompareData tc 
    left join ProductCatalog pc 
    ON tc.ProductID=pc.ProductID 
+1

あなたは 'GROUP BY'を試しましたか? – Dragos

+0

どのDBMSを使用していますか? –

答えて

0

まあ、あなたの後ろに応じて、1つの解決策は、tc.UPCでグループ化することです。例えば

SELECT 
    MIN(tc.ChainID), 
    tc.UPC, 
    MIN(tc.SupplierInvoiceNumber), 
    MIN(pc.DateTimeCreated) 
FROM #tmpCompareData tc 
    LEFT JOIN ProductCatalog pc 
ON tc.ProductID = pc.ProductID 
GROUP BY tc.UPC 

注意、あなたはそのデータを返すようにしたいどのようにSQLを伝えるために、他の選択した列に集約関数(MIN()MAX()など)を適用する必要があること。

関連する問題