Выбор данных из нескольких таблиц, имеющих отношения - PullRequest
0 голосов
/ 15 мая 2018

Мне нужно выбрать данные из нескольких таблиц, имеющих отношение как A-> B-> C (A имеет отношение один-ко-многим с B, а B имеет отношение один-ко-многим с C). Как и в данном рисунке базы данных, мне нужно выбрать сумму total_amount из petty_claim и vendors_claim для определенного типа расходов и определенной группы офиса (Invoice_main) по месяцам (Invoice_main.date). Нажмите здесь, чтобы посмотреть рисунок Ниже приведены примерные таблицы, не имеющие реальных значений, но аналогичные исходным таблицам. Все значения случайны.
Нужна помощь для этого. Спасибо за ваше время

Table: Invoice_main
Columns:   invoice_ID   Office_ID    Date
row:       1            2            2018-05-5
row:       2            1            2018-04-4
row:       3            1            2018-05-3

Table: Office
Columns:   office_ID   Office
row:       1            Support
row:       2            HR
row:       3            Billing

Table: Petty_claim
Columns:   invoice_id   Expense_id    Amount
row:       1            2             1000
row:       2            3             1000

Table: Vendors_claim
Columns:   invoice_id   Expense_id    Amount
row:       3            1             2000
row:       4            3             2000

Table: Expense_Types
Columns:   expense_id   dept_id
row:       1            Type A
row:       2            Type B
row:       3            Type C

OUT PUT Требуется

Month    Expense_Type   Office_1    Office_2 
1        Type A         1000        2000
2        Type B         2033        1034

1 Ответ

0 голосов
/ 15 мая 2018

Это будет примерно так:

 SELECT SUM(invoice.total_amount)
  FROM (SELECT date, total_amount
          FROM invoice_main main , invoice_petty_claim petty, invoice_expense_type expense_type
         WHERE main.office = 'XXX' and main.id=petty.invoice_id and petty.expense_type = expense_type.type
         UNION ALL
        SELECT date, total_amount
          FROM invoice_main main, invoice_vendors_claim vendor, invoice_expense_type expense_type
         WHERE main.office = 'XXX' and main.id=vendor.invoice_id AND vendor.expense_type = expense_type.type
         ) invoice
 GROUP BY invoice.date
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...