2016-08-09 6 views
0

パラメーター値がレポートに渡されない場合、前月全体でレポートを実行したいと考えています。私はこれをどのようにして行うのですか?レポートSQLステートメントのオプションパラメーター

別のオプションは、既定で先月に読み込まれ、次に更新されるときに、日付の新しいパラメータを選択することができます。

いずれかの方法がありますか?

これは私のコマンドウィンドウです。私の日付パラメタはSQLコードを選択します。

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; 

答えて

1

あなたは完全にあなたのSQLでこれを行うことができます。 null合体演算子を使用し、値が指定されていない場合はデフォルト値を計算します。何かのように...

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

上記の私の質問を見て、どうすればこのアプローチになるでしょうか。あなたはあなたが書いたコードをどこでその質問に入れますか? –

+0

クエリの6行目と7行目。それに合わせて調整する必要があります。私はTSQLを使用しています。他のものを使用しているようですが、プリンシパルは同じである必要があります。 – bbsimonbb

+0

これは、NULLではないケースを処理しますか?彼らはそれらの値を使用する必要があります日付の値を入力すると言う –

0

パラメータがnullかどうかを判断する式を設定します。次に、レポートのパラメータのすべてのインスタンスを新しい数式に置き換えます。何かのように:

+0

私の編集した質問を見てください –

+0

ああ、あなたはSQLパラメータを意味します。これは、Crystal Reportsの質問とSQLベースの質問のほうが少ないです。このコマンドと[SQL]タグを含めるように質問を更新します。 – 4444

+0

はい、Crystalレポートのユーザー入力パラメータに応じたSQLパラメータ –

0

以下のようにパラメータをCrystalレポートに作成し、 "オプションのプロンプト"をTRUEにします。 選択エクスポート条件では、このタイプの式を適用します。このことにより、

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

は何もあなたが前月結果を取得するパラメータで選択されていない場合..

+0

選択エキスパートはどのように使用しますか?どのテーブル値のように? –

+0

私はコマンド –

+0

を使用しています。コマンドを使用している場合は、{table.Date}の代わりに日付の値を持つフィールドを使用してください。 –