В качестве примера у меня есть два запроса в Access. Первый выводит два столбца:

| Cust ID | Revenue 1 |
|    A    |     5     |
|    B    |    10     |

Второй запрос похож:

| Cust ID | Revenue 2 |
|    B    |     8     |
|    C    |     9     |

Я хочу создать запрос, который будет объединять эти первые два запроса:

| Cust ID | Revenue 1 | Revenue 2 |
|    A    |     5     |      0    |
|    B    |     10    |      8    |
|    C    |     0     |      9    |

Но поскольку A не во втором запросе, а C не в первом, я получаю следующий результат:

| Cust ID | Revenue 1 | Revenue 2 |
|    B    |     10    |      8    |

У меня есть основная таблица всех существующих идентификаторов Cust. Как я могу написать запрос, который будет вводить 0 для любого не найденного значения (в данном случае 0 для A, Rev 2 и C, Rev 1)?

1 ответ1

1

То, что вы ищете, это внешнее соединение. По умолчанию используется Inner Join. Этот маленький вопрос очень хорошо описывает разницу:

https://stackoverflow.com/questions/38549/sql-difference-between-inner-and-outer-join/38578#38578

Конечно, это изображает его с помощью универсального SQL - не уверен, как это вообще относится к Access.

Страница Microsoft для внешних объединений в Access находится здесь: http://office.microsoft.com/en-us/access-help/creating-an-outer-join-query-in-access-HA001034555.aspx

Он должен рассказать вам все, что вам нужно знать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .