Объединить более 2 таблиц с агрегатными функциями без FK и с одинаковым идентификатором во всех таблицах - PullRequest
0 голосов
/ 15 октября 2019

У меня есть 3 таблицы

таблица 1

customerid customername
1              abc
2              bcd
3              cde
4              def
5              efg

таблица 2

Customerid customername salesqty saleprice
1          abc            10        30
3          cde            20        40
4          def            15        50

таблица 3

customerid customername growth
1              abc       -10
2              bcd        100
3              cde        -50
4              def         20

Как я могу присоединитьсяв этих таблицах используется оператор суммирования для salesqty, saleprice, роста и я должен получить общего клиента в этой таблице (какое объединение я должен использовать) и, наконец, таблица выглядит следующим образом.

Customerid customername salesqty saleprice growth
1              abc         x         x        x
2              bcd         x         x        x
3              cde         x         x        x
4              def         x         x        x
5              efg         x         x        x

1 Ответ

0 голосов
/ 15 октября 2019

Вы можете создать запрос с левыми объединениями, чтобы отобразить результаты, как у вас в таблице4. Вы можете в конечном итоге изменить этот запрос, чтобы добавить запрос, чтобы получить результаты в другой таблице (в вашем случае table4).

Select table1.customerid, table1.customername, table2.salesqty, table2.salesprice, table3.growth
From (table1 Left Join table2 On table1.customerid=table2.customerid) Left Join table3 On table1.customerid = table3.customerid;

Однако я не знаю, чего вы пытаетесь достичь, но хорошей практикой является построение отношений с использованием PK к FK, так как вы могли бы нормализовать свою базу данных и не иметьповторять столбцы в разных таблицах.

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