2014-04-08 27 views
0

本質上,我有一個測試用例場景,我需要將計算的百分比分配給文本值。例如。 < 80 =「B」 < 70 =「C」如何將字符串值分配給SQL視圖中的數值

這裏是

Select *... 
    100 * COUNT(CASE TurnedIn WHEN 1 THEN 1 ELSE NULL END) 
          /COUNT(TurnedIn) AS Percentage, 
From Table1 
When ... 

我曾嘗試包裹基於在切換作業的數量的拉動值到百分之我的代碼的相關部分。這種情況下,如

Case when (100 * COUNT(CASE TurnedIn WHEN 1 THEN 1 ELSE NULL END) 
          /COUNT(TurnedIn)) <= 80 Then 'B' As LetterGrade 

但到目前爲止沒有運氣。

+0

可否請您顯示視圖/表結構? –

回答

2

寫爲:

Select *, --name all columns you want 
      case when Percentage < 80 then 'B' 
       when Percentage < 70 then 'C' 
       else 'Add the grade which should be default when above 2 
         case conditions are not met' 
      end as LetterGrade 
    from (  
    Select *, 
     100 * COUNT(CASE TurnedIn WHEN 1 THEN 1 ELSE NULL END) 
           /COUNT(TurnedIn) AS Percentage 
    From Table1 
    When ..) T 
2

你可以試試這個,

With CTE as 
(

Select (100 * COUNT(CASE TurnedIn WHEN 1 THEN 1 ELSE NULL END) 
        /COUNT(TurnedIn))  as Percentage 

    from myTable   
)   
select Case When Percentage <70 
      Then 'C' 
      When Percentage <80 
      Then 'B' 
      Else 'A' 
     End 
from CTE 
+0

這可能會很好,但第二個答案是我更熟悉並隨之而來的。對不起,但感謝您的幫助。 – Kevrone

+0

沒有問題的朋友,你可以upvote我! – AK47

+0

@Kevrone,你勾選了錯誤的答案,試着用百分比50運行該腳本,它會導致'B',但它應該返回'C'。 – AK47

相關問題