Как рассчитать проценты для Outer Apply и Group By? - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть две таблицы, которые объединяются с внешним применением.У меня проблема в том, что я хочу рассчитать процент на основе значений из левой таблицы, т.е. таблицы А в приведенном ниже коде.

Пробуется как дополнительный выбор, но не работает из-за группировки по

    Select 
    ISNULL(P.div,'GL')Div,
    Right(T.Account,9)Account, FORMAT(T.Accounting_Date,'yyyy-MM') AS Period, 
  Round(Sum(T.Debit+T.Credit),2)Amount
    ,(
            Sum((T.Debit+T.Credit))* 100 / 
                    (Select Sum(T.Debit+T.Credit) 
                        From TABLE_ A 
                        Where Left(T.Account,4) = '9140'
                        Group by Left(T.Account,4) 
                    )
                ) as Perc3nt

    From TABLE_ A AS T
    OUTER APPLY 
        (   Select Vendor, Invoice, Amount,expense_account,Accounting_Date, Dist_Seq, 
            Case When Substring(Expense_Account,6,3) Between '200' and '300' Then 'RES'
                 When Substring(Expense_Account,6,3) >= '500' Then 'COM'
                 When Substring(Expense_Account,6,3) = '100' Then 'CORP'
                 End As Div
            FROM TABLE_ B
            Where T.Vendor = Vendor and T.AP_Invoice = Invoice and Left(T.Account,4) = '9140'
            and T.Invoice_Dist_Seq = Dist_Seq
        )   AS P
    Where Right(Account,9) IN ('1110.0130') and LEFT(T.Account,4) = '9140'
    and T.Accounting_Date >= '03/01/19' and T.Accounting_Date <= '3/31/2019' 

    Group By ISNULL(P.div,'GL'),
             Right(T.Account,9),
             FORMAT(T.Accounting_Date,'yyyy-MM')

Results without the percentage query

...