2016-08-08 9 views
0

Ich habe 3 einfache Parameter, die alle Text sind, und ermöglichen mehrere Werte sowie leere Werte. Es gibt keine verfügbaren Werte oder Standardwerte, da die Benutzer den Wert selbst eingeben sollen. Wenn Sie alle Parameter leer lassen, werden keine Daten angezeigt, da keine leeren Werte vorhanden sind. Ich möchte jedoch alle Daten anzeigen, wenn für den Parameter kein Wert eingegeben wurde. Wie kann ich das machen?SSRS Blank Parameter

Dies ist, was die Abfrage jetzt

SELECT [PROGRAMNO] 
     ,[ACCTNO] 
     ,[CLAIMNO] 
     ,[TOTALCHARGES] 
     ,[TOTALPAYMENT] 
     ,[TYPE] 
    FROM DATALINE 
WHERE PROGRAMNO IN (@PROGRAMNO) 
    AND ACCTNO IN (@ACCTNO) 
    AND CLAIMNO IN (@CLAIMNO) 
gut aussieht wie

Antwort

2

Sie eine OR hinzufügen können für die NULL (oder leer) Wert für jede Bedingung zu ermöglichen - je nachdem, welche Sie in den Parameter erlaubt haben .

WHERE (PROGRAMNO IN (@PROGRAMNO) OR @PROGRAMNO is null) 
    AND (ACCTNO IN (@ACCTNO) OR @ACCTNO IS NULL) 
    AND (CLAIMNO IN (@CLAIMNO) OR @CLAIMNO IS NULL) 

oder wenn Sie leere Werte erlauben statt:

WHERE (PROGRAMNO IN (@PROGRAMNO) OR @PROGRAMNO = '') 
    AND (ACCTNO IN (@ACCTNO) OR @ACCTNO = '') 
    AND (CLAIMNO IN (@CLAIMNO) OR @CLAIMNO = '') 
0

Mehrwertparameter erlauben nicht leer Eingang. Daher müssen Sie Ihrer Dropdown-Liste ein Element hinzufügen, das den leeren Wert darstellt. Wenn Sie die verfügbaren Werte manuell angeben, fügen Sie diese einfach zur Liste hinzu. Der Wert wäre leer und das Label könnte etwas wie "Blank" oder "N/A" sein. Wenn Sie eine Abfrage verwenden, um die verfügbaren Werte aufzufüllen, müssen Sie diesen leeren Wert zu den anderen Ergebnissen UNION10. In jedem Fall müssen Sie dies auch in Ihrer WHERE-Klausel im Hauptdatensatz berücksichtigen, wie Hannover Fist darauf hingewiesen hat.