[英]Detailed Aging Report by Row
我有一份報告需要在SSRS 2008 R2中進行會計處理。 這是一份賬齡報告,其中顯示了所有欠款,分別按0-30天,31-60天,61-90天和90天分組。 我有這個查詢,帶來了所有正確的信息。
SELECT DISTINCT
T.ttfid,
N.ttfn,
T.T_DATE,
T.NUM,
T.DESCR,
T.PAYEE,
T.DEBIT,
T.CREDIT,
T.X,
T.TTYPE,
T.BORROWER,
T.INVOICE_N,
T.PAID_ON,
T.CHECK_N,
N.CustId,
N.LOAN_NO,
N.CustFn,
B.LNAME,
cc.CCODE
FROM TRANS T
LEFT OUTER JOIN ttMAIN N ON (T.ttfid = N.ttfid)
LEFT OUTER JOIN BORROWER B ON
(T.ttfid = B.ttfid) AND
(B.BORR_NO = 1)
LEFT OUTER JOIN ttCC cc ON N.CustId = cc.cid
WHERE
(
(T.PAID_ON IS NULL) OR (T.PAID_ON > @dtEnd)
) AND
(T.DEBIT > 0) AND
(T.T_DATE BETWEEN @dtStart AND @dtEnd)
ORDER BY
T.PAYEE,
T.T_DATE DESC,
T.NUM
在SSRS中,我可以按CCODE正確分組,並使用類似以下的子組獲得正確的總數
=iif(DateDiff("d",Fields!T_DATE.Value, Parameters!dtEnd.Value)>=0 and DateDiff("d",Fields!T_DATE.Value,Parameters!dtEnd.Value)<=30,Fields!T_DATE.Value,nothing)
=iif(DateDiff("d",Fields!T_DATE.Value, Parameters!dtEnd.Value)>=31 and DateDiff("d",Fields!T_DATE.Value,Parameters!dtEnd.Value)<=60,Fields!T_DATE.Value,nothing)
=iif(DateDiff("d",Fields!T_DATE.Value, Parameters!dtEnd.Value)>=61 and DateDiff("d",Fields!T_DATE.Value,Parameters!dtEnd.Value)<=90,Fields!T_DATE.Value,nothing)
=iif(DateDiff("d",Fields!T_DATE.Value, Parameters!dtEnd.Value)>=91 and DateDiff("d",Fields!T_DATE.Value,Parameters!dtEnd.Value)<=99999999,Fields!T_DATE.Value,nothing)
但是,細節最終沒有顯示出來,或者我在各組之間重復了文件,如下所示。
我想我需要使用多個數據源或將進行預排序的查詢。 上面的SQL查詢不是我自己的。 我確實有一點SQL經驗,並且大約有一年編寫報告。 我一直是首屈一指的,目前是唯一一個對這一切有任何了解的人。 如果您有答案,請堅持我,因為我不僅希望報告能夠工作,而且也希望理解。 謝謝
使用以下表達式添加公式。 刪除您擁有的四個組,並替換為使用新公式的一組。
=iif(
DateDiff("d", Fields!T_DATE.Value,Parameters!dtEnd.Value) <= 30, "0-30 Day",
iif(
DateDiff("d", Fields!T_DATE.Value,Parameters!dtEnd.Value) <= 60, "31-60 Day",
iif(
DateDiff("d", Fields!T_DATE.Value,Parameters!dtEnd.Value) <= 90, "61-90 Day",
"91 Day and over"
)
)
)
我不確定該邏輯是否完全符合預期的結果,但這是基於您到目前為止提供的內容。 我不知道兩個開始和結束參數的含義,這是我添加此警告的原因之一。
注意:該表達式也很容易重寫為switch()
:
=switch(
DateDiff("d", Fields!T_DATE.Value,Parameters!dtEnd.Value) <= 30, "0-30 Day",
DateDiff("d", Fields!T_DATE.Value,Parameters!dtEnd.Value) <= 60, "31-60 Day",
DateDiff("d", Fields!T_DATE.Value,Parameters!dtEnd.Value) <= 90, "61-90 Day",
true, "91 Day and over"
)
我有一個類似的問題,在這里回答了。 SSRS類別分組
我認為您需要使用switch功能來使這項工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.