В DB2 for i (также известной как DB2/400) версии V6R1 я хочу написать оператор SQL SELECT, который возвращает несколько столбцов из записи заголовка и несколько столбцов из ТОЛЬКО ОДНОЙ из соответствующих записей сведений. Это может быть ЛЮБАЯ совпадающая запись, но мне нужна информация только от ОДНОЙ из них. Я могу выполнить это с помощью следующего запроса ниже, но я думаю, что должен быть более простой способ, чем использование предложения WITH. Я буду использовать его, если мне это нужно, но я продолжаю думать: «Должен быть более простой способ». По сути, я просто возвращаю имя и фамилию из таблицы Person... плюс ОДИН из соответствующих адресов электронной почты из таблицы PersonEmail.
Спасибо!
with theMinimumOnes as (
select personId,
min(emailType) as emailType
from PersonEmail
group by personId
)
select p.personId,
p.firstName,
p.lastName,
pe.emailAddress
from Person p
left outer join theMinimumOnes tmo
on tmo.personId = p.personId
left outer join PersonEmail pe
on pe.personId = tmo.personId
and pe.emailType = tmo.emailType
PERSONID FIRSTNAME LASTNAME EMAILADDRESS
1 Bill Ward [email protected]
2 Tony Iommi [email protected]
3 Geezer Butler [email protected]
4 John Osbourne -