CustomerMaster
データベースに 、Addresses
、EmailAddresses
、 &の 4 つのテーブルがあります。PhoneNumbers
Addresses
、EmailAddresses
、 &PhoneNumbers
参照CustomerMaster
の主キー。
の各顧客の最新の顧客情報を取得するクエリを作成したいと考えていますCustomerMaster
。テーブルを結合する方法は知っていますが、フィールドを使用して、 、、およびの各顧客のテーブルTimeStamp
から最近更新されたデータのみを取得する方法がわかりません。Addresses
EmailAddresses
PhoneNumbers
CustomerMaster
SQL フィドル: Working Example
カスタマーマスター:
| CUS_PK | CUS_FirstName | CUS_LastName | CUS_AccountNum
| 1 | mickey | mouse | 000001
| 2 | donald | duck | 100000
住所:
| ADD_CUS_FK | ADD_StreetAddress | ADD_City | ADD_StateProvince | ADD_PostalCode | ADD_TimeStamp
| 1 | Disney World | Orlando | Florida | 99999 | 2000-01-01 12:00:00.000
| 1 | Disney Land | Anaheim | California | 12345 | 2012-12-23 12:00:00.000
| 2 | Disney World | Orlando | Florida | 99999 | 2001-01-01 12:00:00.000
メールアドレス:
| EMA_CUS_FK | EMA_EmailAddress | EMA_TimeStamp
| 1 | supermouse@disney.com | 2005-01-01 12:00:00.000
| 1 | mousehouse@disney.com | 2006-01-01 12:00:00.000
| 2 | scrougeheir@disney.com | 2001-01-01 12:00:00.000
電話番号:
| PHO_CUS_FK | PHO_PhoneNumber | PHO_TimeStamp
| 1 | 999-999-9999 | 2001-01-01 12:00:00.000
| 1 | 012-345-6789 | 2013-01-01 12:00:00.000
| 2 | 666-867-5309 | 2001-01-01 12:00:00.000
クエリ:
SELECT DISTINCT cm.CUS_FirstName, cm.CUS_LastName, cm.CUS_AccountNum,
addr.ADD_StreetAddress, addr.ADD_City,
addr.ADD_StateProvince, addr.ADD_PostalCode,
email.EMA_EmailAddress, phone.PHO_PhoneNumber
FROM CustomerMaster AS cm
JOIN Addresses AS addr
ON cm.CUS_PK = addr.ADD_CUS_FK
JOIN EmailAddresses AS email
ON cm.CUS_PK = email.EMA_CUS_FK
JOIN PhoneNumbers AS phone
ON cm.CUS_PK = phone.PHO_CUS_FK
ORDER BY cm.CUS_AccountNum
現在の結果:
Mickey | Mouse | 000001 | Disney World | Orlando | Florida | 99999 | supermouse@disney.com | 999-999-9999
Mickey | Mouse | 000001 | Disney World | Orlando | Florida | 99999 | supermouse@disney.com | 012-345-6789
Mickey | Mouse | 000001 | Disney World | Orlando | Florida | 99999 | mousehouse@disney.com | 999-999-9999
Mickey | Mouse | 000001 | Disney World | Orlando | Florida | 99999 | mousehouse@disney.com | 012-345-6789
Mickey | Mouse | 000001 | Disney Land | Anaheim | California | 12345 | supermouse@disney.com | 999-999-9999
Mickey | Mouse | 000001 | Disney Land | Anaheim | California | 12345 | supermouse@disney.com | 012-345-6789
Mickey | Mouse | 000001 | Disney Land | Anaheim | California | 12345 | mousehouse@disney.com | 999-999-9999
Mickey | Mouse | 000001 | Disney Land | Anaheim | California | 12345 | mousehouse@disney.com | 012-345-6789
Donald | Duck | 100000 | Disney World | Orlando | Florida | 99999 | scrougeheir@disney.com | 666-867-5309
望ましい結果:
Mickey | Mouse | 000001 | Disney Land | Anaheim | California | 12345 | mousehouse@disney.com | 012-345-6789
Donald | Duck | 100000 | Disney World | Orlando | Florida | 99999 | scrougeheir@disney.com | 666-867-5309
目的の結果セットを取得するには、既存のクエリをどのように編集する必要がありますか?
拡張 SQL クエリ (できれば SQL Fiddle) を提供してください