2016-08-09 84 views
0

Ich möchte einen Bericht über den gesamten vorherigen Monat ausführen lassen, wenn keine Parameterwerte an den Bericht übergeben werden. Wie mache ich das?Optionaler Parameter im Bericht SQL-Anweisung

Eine andere Option wäre, dass sie standardmäßig in den vorherigen Monat geladen wird und dann bei der Aktualisierung neue Parameter für Daten ausgewählt werden können.

Gibt es eine Möglichkeit, beides zu tun?

Dies ist mein Befehlsfenster. Mein Datumsparameter wählt den SQL-Code aus.

select cc.NM, dst.DSCRPTN, count(*) 
from DST_SUBMITTION dsts , PATIENT p, DRUG_SCREEN_TEST dst, CARE_CENTER cc 
where dsts.PTNT_ID = p.PTNT_ID 
and p.CC_ID = cc.CC_ID 
and dsts.DST_ID = dst.DST_ID 
and date(APNTMNT_DT) >= date({?startDt}) 
and date(APNTMNT_DT) <= date({?endDt}) 
and dsts.STS_CD in ('A', 'I') 
group by cc.NM, dsts.DST_ID; 

Antwort

1

Sie können dies in Ihrer SQL vollständig tun. Verwenden Sie den Nullkoaleszenzoperator und berechnen Sie dann Ihren Standardwert, wenn kein Wert angegeben wird. So etwas wie ...

DATE >= ISNULL(?StartDate, DATEADD(m,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()), 0))) 
AND DATE <= ISNULL(?EndDate, DATEADD(d,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0))) 
+0

Wenn ich also meine obige Abfrage anschaue, wie würde ich bei diesem Ansatz vorgehen? Wo würde ich den Code, den du geschrieben hast, in diese Abfrage einfügen? –

+0

In den Zeilen 6 und 7 Ihrer Abfrage. Sie müssen es anpassen, um zu passen. Ich benutze TSQL, es sieht so aus, als ob du etwas anderes verwendest, aber der Prinzipal sollte der gleiche sein. – bbsimonbb

+0

Wird dies den Fall behandeln, wo es nicht NULL ist? Angenommen, sie geben Datumswerte ein, die diese Werte verwenden sollen –

0

Ich würde eine Formel einrichten, um festzustellen, ob der Parameter null ist. Ersetzen Sie dann jede Instanz des Parameters in Ihrem Bericht durch die neue Formel. Etwas wie:

If HasValue({DateParameter}) 
Then DateAdd ("m", -1, CurrentDate) 
Else {Parameter} 
+0

Werfen Sie einen Blick auf meine editierte Frage –

+0

Ah, du meinst einen SQL-Parameter. Das ist weniger eine Frage von Crystal Reports als eine SQL-basierte Frage. Ich werde Ihre Frage aktualisieren, um diesen Befehl und ein [SQL] -Tag einzuschließen, damit Sie noch mehr Augen auf diese – 4444

+0

haben können Ja, SQL-Parameter abhängig von den Crystal Reports-Benutzereingabeparametern –

0

einen Parameter in Crystal Report als Gebrüll erstellen und "optional prompt" machen, ist TRUE. In Auswahl Export Bedingung wenden Sie diese Art von Formel.

if hasvalue({?Date parameter}) then 
{table.Date} <= {?Date parameter} 
else 
{table.Date} <= DateAdd ("m", -1, CurrentDate) 

durch diese, wenn nichts im Parameter ausgewählt ist, wird das Vormonatsergebnis erhalten ..

+0

Womit benutze ich den Auswahlexperten? Wie welcher Tabellenwert? –

+0

Ich benutze den Befehl –

+0

ok .. Wenn Sie den Befehl verwenden, verwenden Sie das Feld mit dem Datumswert anstelle von {table.Date}. –