2つのテーブル。 1つは従業員ID、名前、指定を含みます。 2番目のテーブルにはID、月、給与が含まれています。従業員の月給と月給の両方を取得する方法
従業員の指定で、月間最大の給与を出力する必要があります。
2つのテーブル。 1つは従業員ID、名前、指定を含みます。 2番目のテーブルにはID、月、給与が含まれています。従業員の月給と月給の両方を取得する方法
従業員の指定で、月間最大の給与を出力する必要があります。
これを試してください: -
SELECT x1.month,e1.name,e1.designation,x1.salary FROM employee e1 JOIN (SELECT max(salary)
as salary,month,name,employeeid FROM salary GROUP BY employeeid)x1
ON x1.salary = e1.salary AND e1.id = x1.employeeid
を以下のようにテーブルを考慮すると、
mysql> select * from T1;
+----+------+-------------+
| id | name | Designation |
+----+------+-------------+
| 1 | a | man |
| 2 | b | assis |
| 3 | c | serv |
+----+------+-------------+
と
mysql> select * from T2;
+----+-------+--------+
| id | month | salary |
+----+-------+--------+
| 1 | jan | 3000 |
| 2 | jan | 2000 |
| 3 | jan | 1000 |
| 1 | Feb | 4000 |
| 2 | Feb | 3000 |
| 3 | Feb | 2000 |
+----+-------+--------+
あなたの要件: "月と名前の最大の給与、従業員の指定"
クエリを取得する:
select name,Designation,max(salary) from T1 join T2 using (id)
group by name;
の検索結果を:
+------+-------------+-------------+
| name | Designation | max(salary) |
+------+-------------+-------------+
| a | man | 4000 |
| b | assis | 3000 |
| c | serv | 2000 |
+------+-------------+-------------+
あなたは毎月のために各従業員の最大給与をしたい場合:
問合せ:
select name,Designation,month,max(salary) from T1 join T2 using (id)
group by name,month;
結果:このことができます
+------+-------------+-------+-------------+
| name | Designation | month | max(salary) |
+------+-------------+-------+-------------+
| a | man | Feb | 4000 |
| a | man | jan | 3000 |
| b | assis | Feb | 3000 |
| b | assis | jan | 2000 |
| c | serv | Feb | 2000 |
| c | serv | jan | 1000 |
+------+-------------+-------+-------------+
希望!!
既に試しましたか?私は結果を得ていませんでした。[Ask to ask](http://stackoverflow.com/help/how-to-ask) – yeputons