MS Access выбрать из двух таблиц - PullRequest
1 голос
/ 05 октября 2019

У меня есть 2 таблицы MS ACCESS и я хочу создать выборку, которая будет возвращать 3 столбца;table1.name table1.dept и значение в 1 из 3 столбцов таблицы 2 на основе столбца позиции table1. Table1.position имеет только 3 возможных значения, и каждое значение определяет используемый столбец table2.

table1

name dept position

table2

dept posval1 posval2posval3

Мой выбор будет выглядеть примерно так:

select a.name, a.dept, b.((if a.pos = "eng", b.posval1) OR (if a.pos = "research", b.posval2) OR (if a.pos = "dv1", b.posval3))
from table1 a, table2 b
where a.dept = b.dept

1 Ответ

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

Используйте предложение JOIN для связывания полей dept вместо WHERE. Используйте вложенную IIf () для выбора подходящего положения.

SELECT a.name, a.dept, 
    IIf(pos="eng", posval1, IIf(pos="research", posval2, IIf(pos="dv1", posval3, "None"))) AS Position
FROM table1 a INNER JOIN table2 b ON a.dept = b.dept;

Или используйте функцию Switch ().

SELECT a.name, a.dept, 
    Switch(pos="eng",posval1, pos="research",posval2, pos="dv1",posval3) AS Position
FROM table1 a INNER JOIN table2 b ON a.dept = b.dept;
...