2015-05-05 2 views
1

Мне нужно подсчитать количество валют, и если их больше двух, то это должно быть USD. Это может быть GBP, или что-нибудь еще, но если оно больше 1, то должно быть USD.SQL Server: COUNT (DISTINCT (CASE))

Ну, мой запрос должен выглядеть так, но это не сработало:

SELECT 
    name, 
    COUNT(DISTINCT (case ft.currency_name > 1 then 'USD' end)) as Currency_Name 
FROM 
    fundtable ft 

ответ

1

Попробуйте это:

SELECT 
    ft.Currency_Name, 
    (CASE 
     WHEN COUNT(DISTINCT ft.Currency_Name)> 1 THEN 'USD' 
     ELSE ft.Currency_Name END) Currency_Name 
FROM 
    fundtable ft 
GROUP BY 
    ft.Currency_Name 
2

Вы можете попробовать следующее:

select case when count(distinct ft.[currency_name]) > 1 then 'USD' 
      else ft.[currency_name] 
     end as [Currency_Name] 
from [fundtable] ft 
group by ft.[currency_name] 
+0

Спасибо много. Оно работает. –