2016-04-08 20 views
0

Bir formda on onay kutusu vardır. Form tamamlandığında, SSRS'de bir sorgu kullanarak sonucu bilmek istiyorum. Kutuların her birinin farklı isimleri Checkbox1, Checkbox2, Checkbox3 ... işaretlendiğinde Evet ve NULL işaretini kaldırın. Bir veya daha fazla (çoklu) onay kutusuyla aldığım yanıtların ne kadarının kapalı olduğunu hesaplamak istiyorum. Birden çok onay kutusu seçildiğinde nasıl öğrenebilirim?Birden çok alanı denetlemek ve ilk eşleştirilen gerçek değeri döndürmek için Büyük/Küçük Harf Durumunu Kullanma

sum (case when Checkbox1='Yes' Or Checkbox2='Yes' 
Or Checkbox3='Yes' Or Checkbox4='Yes' Or Checkbox5='Yes' 
Or Checkbox6='Yes' Or Checkbox7='Yes' Or Checkbox8='Yes' 
Or Checkbox9='Yes' Or Checkbox10='Yes' then 1 else 0 end) checkboxresult 

cevap

0

Eğer 1 veya 0 sayısal bir değere kutusunun değerine dönüştürmek, o zaman, toplam, örneğin birden fazla olup olmadığını görmek için bunları özetlemek

SELECT 
    ResponseID 
,CASE 
    WHEN SUM(Checkbox1+Checkbox2+Checkbox3+Checkbox4+Checkbox5 
       +Checkbox6+Checkbox7+Checkbox8+Checkbox9+Checkbox10) > 1 
     THEN 'Multiple responses' 
     ELSE 'Zero or 1 responses' 
    END ResponseType 
FROM 
(
SELECT 
    ResponseID 
    ,CASE Checkbox1 WHEN 'Yes' THEN 1 ELSE 0 END AS Checkbox1 
    ,CASE Checkbox2 WHEN 'Yes' THEN 1 ELSE 0 END AS Checkbox2 
    ,CASE Checkbox3 WHEN 'Yes' THEN 1 ELSE 0 END AS Checkbox3 
    ,CASE Checkbox4 WHEN 'Yes' THEN 1 ELSE 0 END AS Checkbox4 
    ,CASE Checkbox5 WHEN 'Yes' THEN 1 ELSE 0 END AS Checkbox5 
    ,CASE Checkbox6 WHEN 'Yes' THEN 1 ELSE 0 END AS Checkbox6 
    ,CASE Checkbox7 WHEN 'Yes' THEN 1 ELSE 0 END AS Checkbox7 
    ,CASE Checkbox8 WHEN 'Yes' THEN 1 ELSE 0 END AS Checkbox8 
    ,CASE Checkbox9 WHEN 'Yes' THEN 1 ELSE 0 END AS Checkbox9 
    ,CASE Checkbox10 WHEN 'Yes' THEN 1 ELSE 0 END AS Checkbox10 
FROM 
    <SomeTable> 
) Responses