несколько где утверждения в про c sql - PullRequest
0 голосов
/ 07 января 2020

Я не частый пользователь SQL, поэтому наберитесь терпения :) Я пытаюсь создать несколько сводных столбцов, используя SQL proc; Я знаю, что приведенное ниже неверно, так как я не могу использовать выражение where, как это, но как мне изменить это?

proc sql ; 
    create table totals as 
        select
            Account_number,
            sum(charge) as total_payments,
            sum(charge) as total_cash (where transactioncode in ('CASH')),
            sum(charge) as total_intt (where transactioncode in ('INTT')),
            calculated total_payments/12 as avg_monthly_payments,
            calculated total_cash/12 as avg_cash_payments,
            calculated total_intt/12 as avg_INTT_payments
        from        tabe_1
        group by    Account_number
; quit ;

1 Ответ

2 голосов
/ 07 января 2020

Вы можете использовать CASE ... WHEN оператор, что-то вроде этого

 create table totals as 
    select
       Account_number,
       sum(charge) as total_payments,
       sum(CASE WHEN transactioncode ='CASH' THEN   charge ELSE 0 END) as total_cash,
       sum(CASE WHEN transactioncode ='INTT' THEN   charge ELSE 0 END) as total_intt,
       sum(charge)/12 as avg_monthly_payments,
       sum(CASE WHEN transactioncode ='CASH' THEN   charge ELSE 0 END)/12 avg_cash_payments,
       sum(CASE WHEN transactioncode ='INIT' THEN   charge ELSE 0 END)/12 as avg_INTT_payments
    from        tabe_1
    group by    Account_number
...