在V6R1的DB2 for i(又名DB2/400)中,我想編寫一條SQL SELECT語句,它返回來自標題記錄的一些列和僅來自一個匹配詳細記錄的一些列。它可以是任何匹配記錄,但我只需要其中一個信息。我可以用下面的查詢來完成這個任務,但是我認爲必須比使用WITH子句更簡單。如果我需要它,我會使用它,但我一直在想,「必須有一個更簡單的方法」。基本上,我只是從Person表中返回firstName和lastName ...加上PersonEmail表中的一個匹配電子郵件地址。DB2返回第一個匹配
謝謝!
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 -
謝謝,@戈登 - linoff!這工作很好。你是一個強大而有才華的人! – DaveSlash
@DaveSlash,如果答案有效,不要忘記標記它。 –