SQL Server: COUNT (DISTINCT (CASE))

J'ai besoin de countr le nombre de devises et s'il y en a plus de deux, il faut que ce soit USD . Il peut s'agir de GBP , ou de n'importe quoi d'autre, mais s'il est supérieur à 1, alors il faut que ce soit USD .

Eh bien, ma requête devrait ressembler à ceci, mais cela n'a pas fonctionné:

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

Essaye ça:

 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 

Vous pouvez essayer ce qui suit:

 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]