数据库中,查询出最早工作的那个人的名字、入职时间和薪水。
时间: 2023-06-15 15:04:01 浏览: 158
假设有一个员工表 Employee,包含字段为姓名(name),入职时间(hire_date)和薪水(salary),可以使用以下 SQL 语句查询出最早工作的那个人的名字、入职时间和薪水:
```
SELECT name, hire_date, salary
FROM Employee
WHERE hire_date = (SELECT MIN(hire_date) FROM Employee)
```
这条语句使用子查询找到最早入职的日期,然后在主查询中使用 WHERE 子句筛选出入职日期等于最早入职日期的员工,最后返回他们的姓名、入职时间和薪水。
相关问题
列出薪金高于公司平均薪资的所有员工 (2)列出与"周八"从事相同工作的所有员工 (3)列出薪资等于部门30中员工的薪资的所有员工的姓名和薪金 (4)列出薪金高于在部门30工作的所有员工的薪资的员工姓名和薪资 (5)查询出最早工作的那个人的名字、入职时间和薪水
对这些问题,需要查询数据库中的员工表(employees)和薪资表(salaries),以及工作表(titles)和部门表(departments)。
(1)列出薪金高于公司平均薪资的所有员工:
```sql
SELECT e.emp_no, e.first_name, e.last_name, s.salary
FROM employees e
INNER JOIN salaries s ON e.emp_no = s.emp_no
WHERE s.salary > (SELECT AVG(salary) FROM salaries)
```
(2)列出与"周八"从事相同工作的所有员工:
```sql
SELECT e.emp_no, e.first_name, e.last_name, t.title
FROM employees e
INNER JOIN titles t ON e.emp_no = t.emp_no
WHERE t.title IN (
SELECT t.title
FROM employees e
INNER JOIN titles t ON e.emp_no = t.emp_no
WHERE e.first_name = '周八'
) AND e.first_name <> '周八'
```
(3)列出薪资等于部门30中员工的薪资的所有员工的姓名和薪金:
```sql
SELECT e.first_name, e.last_name, s.salary
FROM employees e
INNER JOIN salaries s ON e.emp_no = s.emp_no
WHERE s.salary = (
SELECT s2.salary
FROM employees e2
INNER JOIN salaries s2 ON e2.emp_no = s2.emp_no
INNER JOIN dept_emp de ON e2.emp_no = de.emp_no
WHERE de.dept_no = 'd003'
ORDER BY s2.salary DESC
LIMIT 1
)
```
(4)列出薪金高于在部门30工作的所有员工的薪资的员工姓名和薪资:
```sql
SELECT e.first_name, e.last_name, s.salary
FROM employees e
INNER JOIN salaries s ON e.emp_no = s.emp_no
INNER JOIN dept_emp de ON e.emp_no = de.emp_no
WHERE s.salary > (
SELECT s2.salary
FROM employees e2
INNER JOIN salaries s2 ON e2.emp_no = s2.emp_no
INNER JOIN dept_emp de2 ON e2.emp_no = de2.emp_no
WHERE de2.dept_no = 'd003'
ORDER BY s2.salary DESC
LIMIT 1
) AND de.dept_no <> 'd003'
```
(5)查询出最早工作的那个人的名字、入职时间和薪水:
```sql
SELECT e.first_name, e.last_name, s.salary, e.hire_date
FROM employees e
INNER JOIN salaries s ON e.emp_no = s.emp_no
WHERE e.hire_date = (
SELECT MIN(hire_date)
FROM employees
)
LIMIT 1
```
informix 11.5 查询数据库中表最后访问时间
你可以使用 `sysmaster` 数据库中的 `sysptprof` 表来查询数据库中所有表的最后访问时间。以下是一个查询示例:
```
SELECT partnum, tabname, lastacc
FROM sysmaster:sysptprof
WHERE partnum >= 0
ORDER BY lastacc DESC;
```
其中 `partnum` 是表的分区号,`tabname` 是表名,`lastacc` 是最后访问时间。这个查询将返回所有表的最后访问时间,按时间倒序排列。你可以根据需要添加其他条件来筛选结果。