1

2 つのテーブルにクエリを実行し、人々の名前でそれらを結合しています。過去 1 か月以内にフォームに記入していないすべての従業員を作成しようとしています。私が直面している問題は、人々が短い名前 (Joseph ではなく Joe、Michael ではなく Mike) をリストすると、名前の重複を受け取ることです。短い名前を使用している場合でも、重複することなく人々のリストを作成するにはどうすればよいですか?

これは私が今持っているクエリです:

SELECT DISTINCT ge.employeeNo,
(ge.firstName + ' ' + ge.lastName) AS empName,
ge.email
FROM dbo.hist_Employees ge
INNER JOIN dbo.ctrl_Sites cs ON ge.locationID = cs.ID
WHERE (ge.firstName + ' ' + ge.lastName) NOT IN
    (SELECT sc.recordedBy
    FROM GRSTOPS.dbo.hist_StopCard sc
    INNER JOIN dbo.ctrl_Area a ON sc.area = a.ID
    INNER JOIN dbo.ctrl_Site s ON a.site = s.ID
    WHERE sc.recorded BETWEEN '10/01/2013' AND '10/30/2013'
        AND s.code = 'gre')
AND cs.Abbreviation = 'gre'
AND ge.employmentStatus = 1
AND ge.primaryDept <> 3
4

1 に答える 1

0

人々の名前は一意ではないため、結合しない方がよいでしょう。ID/employeeNo などの主キーを使用して参加する必要があります。

于 2013-10-30T15:00:59.130 に答える