0

2 つのテーブルがJobTableありEmployeeTable、次のデータがあります。

従業員テーブル:

EmpId    Salary
1          10
2          20
3          30
4          40
5          50
6          60

ジョブテーブル:

JobId    EmpId
A          1
A          2
B          3 
B          4
C          5
C          6

EmpId各ジョブの最低給与で従業員を返す SQL ステートメントが必要です。

4

2 に答える 2

1

RANK()次のような関数を使用できます。

WITH ranked AS (
  SELECT
    j.JobId,
    e.EmpId,
    e.Salary,
    RANK() OVER (PARTITION BY j.JobId ORDER BY e.Salary) AS rnk
  FROM JobTable j
  INNER JOIN EmployeeTable e ON j.EmpId = e.EmpId
)
SELECT
  JobId,
  EmpId,
  Salary,
FROM ranked
WHERE rnk = 1
于 2012-05-30T08:18:50.050 に答える
0

うーん、これを試してみてください:

SELECT st.EmpID, min(st.salary) 
FROM SalaryTable st INNER JOIN JobTable jt ON st.EmpID=jt.EmpID 
WHERE jt.JobID = 'A' 
GROUP BY st.EmpID
于 2012-05-30T02:21:33.990 に答える