SQL запрос для суммирования и вставки в другую таблицу - PullRequest
0 голосов
/ 06 декабря 2018

В соответствии со схемой, определенной в sqlfiddle Я хочу получить сумму кредитов - сумму дебетов, а затем вставить ее для каждого номера клиента - это еще одна таблица в качестве номера клиента, баланса.какие-либо подсказки, как это сделать, я попробовал запрос в скрипке, но, похоже, не работает

1 Ответ

0 голосов
/ 06 декабря 2018

Ваша проблема в том, что вы перепутали ACCOUNT_TYPE и TRANSACTION_TYPE в своей таблице ACCOUNT_TRANSACTIONS - вы помещаете типы транзакций (кредитные, дебетовые) в поле ACCOUNT_TYPE, и вы вводите типы счетов (клиент и т. Д.)) в поле TRANSACTION_TYPE.

Если вы переключите поля ACCOUNT_TYPE и TRANSACTION_TYPE в определении таблицы, вы получите:

create table account_transactions
  (customer_number varchar2(10),
   transaction_type varchar2(10),
   account_type varchar2(10),
   amount number);

insert into account_transactions values('5555','credit','customer',10);
insert into account_transactions values('5555','debit','customer',10);
insert into account_transactions values('5555','debit','other',15);
insert into account_transactions values('5555','credit','mgr',15);

Вот скрипка с полями, перевернутыми вокруг

Если таблица заполнена правильно, ваш запрос

SELECT t1.CUSTOMER_NUMBER, sum(t2.amount - t1.amount) AS balance
  FROM ACCOUNT_TRANSACTIONS t1,
       ACCOUNT_TRANSACTIONS t2
  where t1.CUSTOMER_NUMBER=t2.CUSTOMER_NUMBER and 
        t1.TRANSACTION_TYPE = 'debit' AND
        t2.TRANSACTION_TYPE= 'credit' and
        t1.ACCOUNT_TYPE='customer' and
        t2.ACCOUNT_TYPE='customer'
  GROUP BY t1.CUSTOMER_NUMBER

работает нормально.

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...