2015-05-05 161 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

謝謝很多。有用。 –