-1

設定:

(数量 1) 従業員テーブル (employeeID、employeeName)

(数量 1) PayType テーブル (payTypeID、payTypeName)

(数量 1) PaySchedule テーブル (payScheduleID、payScheduleName)

(数量 1) 従業員に複数の支払いタイプ (employeeID、payTypeID) が割り当てられるジャンクション テーブル (Employee_has_PayType)

(数量 1) 従業員に複数の給与スケジュール (employeeID、payScheduleID) が割り当てられるジャンクション テーブル (Employee_has_PaySchedule)

必要なもの:

これらの payTypeIDs (29,31,32) (Employee_has_PayType から) の 1 つまたはすべてが割り当てられているすべての EmployeeIDs と、payScheduleID 1 を持つ EmployeeIDs (Employee_has_PaySchedule から) を取得たい

これらの基準の両方を満たす EmployeeID のみが必要です。

これまでのところ、私はこれを試しました:

SELECT 
    Employee_has_PayType.Employee_employeeID as 'type',
    Employee_has_PaySchedule.Employee_employeeID  as 'sched'
FROM
    Employee_has_PayType, Employee_has_PaySchedule 
WHERE 
    Employee_has_PayType.PayType_payTypeID in (29,31,32) 
AND 
    Employee_has_PaySchedule.PaySchedule_payScheduleID = 1
GROUP BY
    Employee_has_PayrollSchedule.Employee_EmployeeID

ただし、paySchedule 1 を持つすべての employeeID のみが返されます。

どんな助けでも大歓迎です。

4

1 に答える 1

3

試す:

SELECT DISTINCT
    Employee_has_PayType.Employee_employeeID 
FROM Employee_has_PayType
JOIN Employee_has_PaySchedule 
  ON Employee_has_PayType.Employee_employeeID = 
     Employee_has_PaySchedule.Employee_employeeID
WHERE 
    Employee_has_PayType.PayType_payTypeID in (29,31,32) 
AND Employee_has_PaySchedule.PaySchedule_payScheduleID = 1
于 2013-02-01T18:35:39.980 に答える