0

SAP Crystal レポートに使用したいこのストアド プロシージャがあります。

SELECT
    t0.DocNum AS ReceiptNo, t2.DocEntry AS InvoiceNo, 
    t0.DocDate, t1.CheckAct,
    t1.CheckNum, t3.AcctName, 
    CASE 
        WHEN (t0.CardName IS NULL) THEN t0.Address
                                   ELSE t0.CardName
    END AS CustName,
    CASE 
        WHEN ((t1.CheckNum IS NULL OR t1.CheckNum = 0)
               AND t0.TrsfrRef IS NULL) THEN 'Cash'
        WHEN (t1.CheckNum > 0
               AND t0.TrsfrRef IS NULL) THEN 'Cheque'
        ELSE 'Transfer'
    END AS PayType, 
    CASE 
        WHEN (t1.CheckNum > 0 AND t0.TrsfrRef IS NULL) THEN t1.CheckSum
        ELSE t0.DocTotal
    END AS DocTotal
FROM
    ORCT t0
LEFT OUTER JOIN 
    RCT1 t1 ON t1.docnum = t0.docnum
LEFT OUTER JOIN 
    RCT2 t2 ON t0.DocEntry = t2.DocNum
LEFT OUTER JOIN 
    OACT t3 ON t1.CheckAct = t3.AcctCode
WHERE
    t0.DocDate BETWEEN @BeginDate AND @EndDate
    AND t0.Canceled = 'N'
    AND t3.AcctCode = @Account

@Account最後の行で、口座番号で結果をフィルター処理する変数を宣言しました。アカウントが選択されていない (null) 場合に、すべてのアカウント番号の結果が返されるように、レポートを機能させたいと考えています。

どうすればこれを達成できますか?

どんな助けでも感謝します。

4

3 に答える 3

3

@Accountis nullの場合、最後の句を実質的に省略したいようです。もしそうなら、これを試してください:

... AND t0.Canceled = 'N' AND
(@Account IS NULL OR t3.AcctCode = @Account)
于 2012-06-25T08:02:47.377 に答える
1

最後に追加

or t3.AcctCode is null
于 2012-06-25T07:59:55.717 に答える