V6R1のDB2 for i(a.k.a. DB2/400)では、ヘッダーレコードの一部の列と一致する詳細レコードの一部の列を返すSQL SELECTステートメントを作成します。一致するレコードはどれでもかまいませんが、私はそれらのうちの1つからの情報しか必要としません。私は以下のクエリでこれを達成することができますが、私はWITH句を使用するより簡単な方法があると考えています。私が必要な場合はそれを使用しますが、私は考えています。「もっと簡単な方法が必要です。本質的に、私はPersonテーブルからfirstNameとlastNameを返すだけです...さらに、PersonEmailテーブルから一致する電子メールアドレスのうちの1つを返します。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]m
2 Tony Iommi [email protected]
3 Geezer Butler [email protected]
4 John Osbourne -
ありがとう!それは美しく働いた。あなたは強力で才能のある人です! – DaveSlash
@DaveSlash、その答えが働いた場合は、マークすることを忘れないでください。 –