gpt4 book ai didi

MYSQL|从单个表中获取两条不同的记录

转载 作者:行者123 更新时间:2023-11-29 23:18:51 25 4
gpt4 key购买 nike

好的。这有点复杂。我一直在努力实现它,但到目前为止还没有实现。

我有三张 table 。休假批准请假申请ml_leave_type

这是leave_approval表 enter image description here

然后从leave_application_id链接到leave_application enter image description here

现在棘手的问题来了,我想要表中的两条记录。

  1. I want Total leaves taken by employee in year 2014
  2. I want Total Leaves taken by employee in month november of 2014

因此意味着需要每年和每月采用两种不同方法的两列。

到目前为止我有疑问。

SELECT 
LA.employee_id,
DATEDIFF(
LA.approved_to,
LA.approved_from
) AS TotalLeavesTaken,
LAPP.`entitlement_id`,
LAPP.`ml_leave_type_id`,
LA.leave_application_id,
LA.approved_from AS LeaveFrom,
LA.approved_to AS LeaveTo
FROM
leave_approval LA
INNER JOIN leave_application LAPP
ON LAPP.application_id = LA.leave_application_id
WHERE YEAR(LA.approval_date) = 2014
AND LA.`employee_id` = 1

这是我得到的查询结果.. enter image description here

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

更新

我可能无法清楚地解释我的问题。

我想要实现的是添加两个额外的列,而不是删除我拥有的列。我的意思是我正在使用我拥有的大多数/所有选择字段

另外,我希望将 2014 年的总休假数显示在一列中,并在该年的不同字段中显示当月的总休假数。

这是我想要的例子。>

ml_leave_type_id | Total Leaves Taken in Year (e-g 2014) | Total Leaves taken in Month (e-g November)
1 10 2
2 6 0
3 4 1

最佳答案

类似的事情可以吗?

2014 年,employee_id = 1 的总假期

SELECT 
LA.employee_id,
SUM(
DATEDIFF(
LA.approved_to,
LA.approved_from
)
) AS TotalLeavesTaken,
LAPP.`entitlement_id`,
LAPP.`ml_leave_type_id`,
LA.leave_application_id,
LA.approved_from AS LeaveFrom,
LA.approved_to AS LeaveTo
FROM
leave_approval LA
INNER JOIN leave_application LAPP
ON LAPP.application_id = LA.leave_application_id
WHERE YEAR(LA.approval_date) = 2014
AND LA.`employee_id` = 1
GROUP BY LA.`employee_id` = 1

employee_id = 1、年份 = 2014 年且月份 = 11 的总休假

SELECT 
LA.employee_id,
SUM(
DATEDIFF(
LA.approved_to,
LA.approved_from
)
) AS TotalLeavesTaken,
LAPP.`entitlement_id`,
LAPP.`ml_leave_type_id`,
LA.leave_application_id,
LA.approved_from AS LeaveFrom,
LA.approved_to AS LeaveTo
FROM
leave_approval LA
INNER JOIN leave_application LAPP
ON LAPP.application_id = LA.leave_application_id
WHERE YEAR(LA.approval_date) = 2014
AND MONTH(LA.approval_date) = 11
AND LA.`employee_id` = 1
GROUP BY LA.`employee_id` = 1

但是,我确实注意到您的数据集中有一些日期重叠。例如:

employee_id = 1 在 2014/11/01 - 2014/11/06 和 2014/11/05 - 2014/11/08 休假。日期 2014/11/05 和 2014/11/06 有何关系。系统将如何处理这种情况

关于MYSQL|从单个表中获取两条不同的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27523470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com