按排序功能中的日期分组

时间:2019-08-20 09:57:03

标签: tsql

在下面的查询中,如何按TRANS-DATE分组?

我使用group by聚合了许多列,但是下面的计算列也需要相同。

TRANS-DATE和其他日期一样,需要按周分组,希望可以返回经常余额。

OB.openbal + SUM(trans.[trans-amt]) over (partition by ten.[tenancy-ref]  ORDER BY [TRANS-DATE] asc) as Balance

摘录自以下查询;

select
    ten.[tenancy-ref],
--  trans.[TRANS-NO],
    trans.[TRANS-DATE],
    sum(cast(rat.[credit-debit] as int)) as [Credit-Debit],
    rat.[DESCRIPTION] as [ACCOUNT-TYPE],
--  rac.[DESCRIPTION] as AccountCode,
    sum(trans.[TRANS-AMT]) [TRANS-AMT],
          sum(CASE WHEN trans.[ACCOUNT-TYPE] != 'CH' THEN trans.[TRANS-AMT] ELSE '0.00' END) as Credits,
       sum(CASE WHEN trans.[ACCOUNT-TYPE] = 'CH' THEN trans.[TRANS-AMT] ELSE '0.00' END) as Charges,
--  OB.openbal + SUM(trans.[trans-amt]) over (partition by ten.[tenancy-ref]  ORDER BY [TRANS-DATE] asc) as Balance
    --,
--  trans.[COMMENT],
--  row_number() OVER ( ORDER BY [TRANS-DATE] asc) ComputedTrannNo
from
    dbo.[RE-TENANCY] ten
inner join dbo.[RE-TNCY-TRANS] trans on
    trans.[ORG-CODE] = ten.[ORG-CODE]
    and trans.[TNCY-SYS-REF] = ten.[TNCY-SYS-REF]
inner join dbo.[RE_ACCOUNT-TYPES] rat on
    rat.[ORG-CODE] = trans.[ORG-CODE]
    and rat.[ACCOUNT-TYPE] = trans.[ACCOUNT-TYPE]
inner join dbo.[RE-ACCOUNTS] rac on
    rac.[ORG-CODE] = trans.[ORG-CODE]
    and rac.[ACCOUNT-TYPE] = trans.[ACCOUNT-TYPE]
    and rac.[ACCOUNT-CODE] = trans.[ACCOUNT-CODE]
    left join 
(
SELECT        [RE-TNCY-TRANS].[TNCY-SYS-REF], '0.0' AS 'openbal'
FROM            [RE-TNCY-TRANS] INNER JOIN
                         [RE-TENANCY] ON [RE-TNCY-TRANS].[TNCY-SYS-REF] = [RE-TENANCY].[TNCY-SYS-REF] INNER JOIN
                         [RE-SUB-ACC-BRKDWN] ON [RE-TNCY-TRANS].[TNCY-SYS-REF] = [RE-TNCY-TRANS].[TNCY-SYS-REF] AND [RE-SUB-ACC-BRKDWN].[INCOME-TRANS-REF] = [RE-TNCY-TRANS].[TRANS-NO]
WHERE        ([RE-TENANCY].[TENANCY-REF] = @Tenancy_Ref) AND  ([RE-SUB-ACC-BRKDWN].[SUB-ACC-CODE] = 'RENT')
GROUP BY [RE-TNCY-TRANS].[TNCY-SYS-REF]
) as OB on ob.[TNCY-SYS-REF] = [ten].[TNCY-SYS-REF]

where
    ten.[ORG-CODE] = '01'
    and trans.[TRANS-AMT] <> 0
    and ten.[TENANCY-REF] = @Tenancy_Ref
--  and [TRANS-DATE] < '2018-11-08'
group by ten.[tenancy-ref], trans.[TRANS-DATE],rat.[DESCRIPTION], OB.openbal --, trans.[trans-amt]

感谢任何想法,思想和帮助。

谢谢

0 个答案:

没有答案