2017-02-17 4 views
-5

私は、テーブルには次のようになります持っている場合:SELECT文を使用して、SQL Server内のELSE

私はこの考え方と同様に IF ELSEステートメントまたは任意の他の条件文で SELECTを使用したい
ref  doc 
----------- 
ref001 3 
ref001 3 
ref002 1 
ref002 4 
ref002 1 

SELECT MAX(ref), THEN SELECT IF MAX(doc)) OR ELSE SUM(doc) 

サンプル出力:

ref001 3 
    ref002 6 
+0

私はあなたが探しているものはCASE文であると信じています – Roy

+0

私は正確に何を求めているのか分かりません。 – ydoow

+0

'if(ref = ref)'は常にtrueになるので、何を求めているのかは不明です。 –

答えて

0

私が正しくあなたの質問を理解している場合は、doc番号と明確なref数は(示さ出力あたりなど)以下の条件でほしいです。 数字がrefの場合、既存のdocの数字がすべて同じ場合はmax(doc)、それ以外の場合はsum(doc)となります。

SELECT ref, 
     (CASE WHEN MAX(doc) = MIN(doc) THEN MAX(doc) ELSE SUM(doc) END) AS doc 
FROM table1 
GROUP BY ref 
1

これを行うには、単純な集計を使用できます。

select ref, 
    case when min(doc) = max(doc) 
     then max(doc) else sum(doc) end doc_total 
from t 
group by ref; 
関連する問題