2015-05-05 175 views
1

我需要计算货币数量,如果有多于两个,则需要为USD。它可以是GBP,或其他任何内容,但如果它大于1,则需要为USDSQL 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

谢谢很多。有用。 –