1

「領収書情報レポート」を持っています。例えば

ID         Name                Date             Createtor        Payment Date

1          Bob               12.12.2012           bb               01.01.2013

2          Smith             15.01.2010           smt              15.02.2011

3          Peter             21.02.2011           ptr                  null       

4          Sarah             18.06.2012           srh              23.07.2012

このようなレポートにパラメーターを追加したいと思います。

  • すべての領収書を一覧表示します(その後、上記のレポートが一覧表示されます)

  • Sarah によって作成されたすべての領収書を一覧表示します

  • 支払われたすべての領収書をリストします。

  • 支払われていないすべての領収書をリストします。

パラメータなしでレポートを作成しました。これらのパラメータをレポートにどのように調整すればよいですか?

4

1 に答える 1

0

次のようにクエリをパラメータ化できます。

IF @PAYMENTSTATUS = 'ALL'
BEGIN
SELECT ID, NAME, [DATE], CREATOR, PAYMENTDATE FROM RECEIPT 
WHERE NAME = CASE @NAME WHEN 'ALL' THEN NAME ELSE @NAME END 
END
IF @PAYMENTSTATUS = 'PAID'
BEGIN
SELECT ID, NAME, [DATE], CREATOR, PAYMENTDATE FROM RECEIPT 
WHERE NAME = CASE @NAME WHEN 'ALL' THEN NAME ELSE @NAME END 
AND PAYMENTDATE IS NOT NULL
END
IF @PAYMENTSTATUS = 'UNPAID'
BEGIN
SELECT ID, NAME, [DATE], CREATOR, PAYMENTDATE FROM RECEIPT 
WHERE NAME = CASE @NAME WHEN 'ALL' THEN NAME ELSE @NAME END 
AND PAYMENTDATE IS NULL
END 

SQL where 句で日付列を正しく大文字と小文字を区別する方法がわからない場合は、if ステートメントを 3 つ必要としません。

次に、パラメーター プロパティで別のデータセットを使用して、クエリから値を取得し、@Name パラメーターを入力することができます。

select 'ALL' 
UNION
SELECT DISTINCT NAME FROM RECEIPT

最後に、@PAYMENTSTATUS パラメータに使用可能な値を使用して、値「ALL」、「PAID」、「UNPAID」を指定するだけです。

于 2013-02-05T06:52:54.140 に答える