TABLE dbo_R5PERSONNEL
column PER_DESC
Do, John
Jones, Jacky
TABLE dbo_R5USERS
column USR_DESC
John Do
Jack Jones
Q:これら2つのテーブルを結合して、テーブルdbo_R5PERSONNELの列PER_DESCに存在するテーブルdbo_R5USERSからすべてのUSR_DESCを取得するにはどうすればよいですか。
文字列操作を使用して、各テーブルから最後の名前だけを大文字にして抽出しました
SELECT UCASE(MID(TRIM(dbo_R5USERS.USR_DESC), INSTR(TRIM(dbo_R5USERS.USR_DESC), ' ') + 1, LEN(TRIM(dbo_R5USERS.USR_DESC)) - INSTR(TRIM(dbo_R5USERS.USR_DESC), ' '))) AS LastName
FROM dbo_R5USERS
WHERE dbo_R5USERS.USR_ACTIVE = '+'
ORDER BY dbo_R5USERS.USR_DESC;
SELECT UCASE(MID(TRIM(dbo_R5PERSONNEL.PER_DESC),1,INSTR(TRIM(dbo_R5PERSONNEL.PER_DESC),',')-1)) AS LastName
FROM dbo_R5PERSONNEL
WHERE dbo_R5PERSONNEL.PER_NOTUSED='+'
ORDER BY dbo_R5PERSONNEL.PER_DESC;
これらの2つのサブクエリにJOINを組み込むにはどうすればよいですか?希望する結果を達成するための別の方法はありますか?
前もって感謝します!
アップデート1:
SELECT R.LastName
, P.LastName FROM
(
SELECT UCASE(MID(TRIM(dbo_R5USERS.USR_DESC)
, INSTR(TRIM(dbo_R5USERS.USR_DESC), ' ') + 1, LEN(TRIM(dbo_R5USERS.USR_DESC)) - INSTR(TRIM(dbo_R5USERS.USR_DESC), ' '))) AS LastName
FROM dbo_R5USERS
WHERE dbo_R5USERS.USR_ACTIVE = '+'
) R
INNER JOIN
(
SELECT UCASE(MID(TRIM(dbo_R5PERSONNEL.PER_DESC),1,INSTR(TRIM(dbo_R5PERSONNEL.PER_DESC),',')-1)) AS LastName
FROM dbo_R5PERSONNEL
WHERE dbo_R5PERSONNEL.PER_NOTUSED='+'
) P
ON R.LastName = P.LastName