Мне нужно извлечь статистику студентов, зарегистрированных по провинции.У студента есть адрес с почтовым индексом;почтовый индекс связан с судейским округом;судебный округ связан с провинцией.Построить выборку с использованием внутренних объединений довольно просто.
Однако, от адреса учащегося до почтового индекса (код = 1911) у меня возникла проблема, поскольку существует несколько записей для почтового кода с разными названиями пригородов.;см. извлечение данных ниже.
1911 FLORA GARDENS,Vanderbijlpark 7702 VANDERBIJLPARK
1911 HENBYL 7702 VANDERBIJLPARK
1911 LUMIER 7702 VANDERBIJLPARK
1911 NORTHDENE,Vanderbijlpark 7702 VANDERBIJLPARK
1911 PARK SOUTH 7702 VANDERBIJLPARK
1911 STAAL 7702 VANDERBIJLPARK
1911 VANDERBIJLPARK 7702 VANDERBIJLPARK
1911 ZUURFONTEIN 7702 VANDERBIJLPARK
Когда я выполняю INNER JOIN, выбираю вот так,
FROM gen.getadr
INNER JOIN stud.iadbio ON getunum = iadstno
INNER JOIN stud.ibvpos ON getpcode = ibvcode
INNER JOIN stud.ibdmag ON ibvcode = ibdcode
строки не возвращаются.
Когда я изменяю это наЛЕВОЕ соединение
FROM gen.getadr
INNER JOIN stud.iadbio ON getunum = iadstno
LEFT JOIN stud.ibvpos ON getpcode = ibvcode
LEFT JOIN stud.ibdmag ON ibvcode = ibdcode
Я получаю строки без данных из ibvpos и idbmag.Таким образом, я не могу объединиться с таблицей провинций для подсчета количества студентов на провинцию.
Можно ли указать, что соединение между getadr (адрес учащегося) и ibvpos (определение почтовых индексов - несколько строк)должно основываться на уникальном совпадении между getpcode и ibvcode?
Полный оператор выбора выглядит следующим образом:
SELECT getunum, getnumtype, getaddrtype, GETCSn, getsdate, getedate, gettac,
getsyscrt
, getadr1, getadr2, getadr3, getadr4, getpcode, ibvtown, ibdname
FROM gen.getadr
INNER JOIN stud.iadbio ON getunum = iadstno
LEFT JOIN stud.ibvpos ON getpcode = ibvcode
LEFT JOIN stud.ibdmag ON ibvcode = ibdcode
where getnumtype = 'I' and getsyscrt = 'S'
AND iadstno = 217244521
AND getaddrtype = 'PA'
AND getedate IS NULL
AND getprimary = 'Y'
ORDER BY getsyscrt, getnumtype, getcsn
Любая помощь приветствуется.
С уважением,
Phlip