2016-09-30 25 views
0

は私がSQLクエリによって、PROD列から各コードについてUNIT列の値の交点を取得したい列交差点

ID  PROD  UNIT 
1 | 100 | X 
2 | 100 | Y 
3 | 100 | Z 
4 | 200 | X 
5 | 200 | Y 
6 | 300 | Y 
7 | 300 | Z 

のようなテーブルがあるとします。テーブル内の製品数は可変ですが、すべての製品に対してUNITと交差する必要があります。 PRODからのすべての製品は共通で唯一UNIT持っているので、私の例では、結果テーブルには、単一の行を持つ表のようになります。あなたがしてDISTINCT Count of Products grouped by Unitを比較できるようにする必要があり

PROD UNIT 
300  Y 
+0

何か試しましたか?何をしないのが分かりましたか? – dfundako

+0

@dfundakoカウント(*)に基づいていくつかの選択を試みました...しかし、私はUNITによるカウント/グループ化を使用することがこの問題ではまったく役に立たないことに気付くようになりました。 start – relysis

+0

結果セットには、すべてのPRODが共通する唯一のものであるため、UNITとしてYを含める必要があります。しかし、なぜあなたの結果セットは1つだけのPRODを持っていますか?価値が出現するための要件は何ですか? –

答えて

1
SELECT MAX(PROD) as Prod, Unit 
FROM 
    TableName 
GROUP BY 
    Unit 
HAVING 
    COUNT(DISTINCT PROD) = (SELECT COUNT(DISTINCT PROD) FROM TableName) 

DISTINCT Count of All Products in the tableHAVING句でサブクエリを使用すると、これを実行できます。

すべてのレコードに派生テーブルを使用して希望の結果を得るために必要な場合は、結果に基づいてMaximum PROD Idを使用するとします。