私は大学で働いており、開発者が変更を加えたロジックのテストを行う任務が与えられています。
必要なもの:Personsテーブルを調べて、社会保障番号の最後の4桁が同じであるレコードを見つけるSQLServerクエリが必要です。それに加えて、これらのレコード(SSNの最後の4桁が同じである)も同じ姓を持っているかどうかを確認したいと思います。
これまでのところ、次のようになっています
。--SQLはかなり新しいので、SSNの最後の4桁しか比較できず、SSNの最後の4桁と同じ名前の学生を見つける方法を理解するのに苦労しています。
SELECT t1.PersonsID,
t1.LastName,
t1.GovernmentID,
t2.PersonsID,
t2.LastName,
t2.GovernmentID
FROM Persons t1, Persons t2
WHERE t1.GovernmentID = t2.GovernmentID
AND t1.PersonsID <> t2.PersonsID
どんな助けでもいただければ幸いです。
ありがとう!
ジョーが言ったことを見た後、私は別の試みをしました:
SELECT
t1.cmn_personsID,
t1.governmentID,
t1.lastname,
t2.cmn_personsID,
t2.governmentID,
t2.lastname,
case when t1.LastName = t2.lastName then 1 else 0 end as SameLastName
from
CMN_Persons t1, cmn_persons t2
WHERE right(t1.GovernmentID, 4) = right(t2.GovernmentID, 4)
AND t1.cmn_PersonsID <> t2.cmn_PersonsID
これは5分間実行されています。トップ10を使用してみたところ、governmentIDの最後の4桁が同じで、同じ名前のユーザーが表示されなかったようです。