1.通过每个月的社保缴纳记录,计算出每个人在每家公司的最早工作时间和最近工作时间,写出对应的sql
时间: 2024-10-14 22:16:26 浏览: 5
为了计算每个人在每家公司的工作起止时间,我们可以假设有两个表:`social_security_records` 存储每月社保缴纳记录,包括员工ID `employee_id`, 公司ID `company_id`, 和月份 `month`;另一个假设的表 `employment_history` 包含员工的基本信息,如 `employee_id` 和 `start_date`、`end_date`。
首先,我们需要创建一个临时表或者视图来存储每个员工每月的开始和结束日期。这里是一个简单的SQL查询示例:
```sql
CREATE VIEW employee_monthly_periods AS
SELECT
employee_id,
MIN(month) AS first_working_month,
MAX(month) AS last_working_month
FROM
social_security_records
GROUP BY
employee_id;
```
这将得到每个人的最早和最晚工作月。
然后,你可以通过连接这个临时视图到 `employment_history` 来找到对应的具体日期:
```sql
SELECT
eh.employee_id,
eh.start_date AS earliest_work_date,
eh.end_date AS latest_work_date,
em.first_working_month,
em.last_working_month
FROM
employment_history eh
JOIN
employee_monthly_periods em ON eh.employee_id = em.employee_id
ORDER BY
eh.company_id, eh.employee_id;
```
这将返回每个人的最早工作时间、最近工作时间和他们在每家公司的工作期间。