【发布时间】:2020-06-05 15:30:18
【问题描述】:
我正在做一个 HR 项目,我需要从 mysql 数据库中调用 3 个表值,并且需要基于以下一些标准的自定义输出: 但我无法获得我正在寻找的输出。我是 mysql 新手,需要您的指导来获得如下输出。提前感谢您的明智建议...
表员工
EMP_ID - EMP_NAME
EID001 - 汤姆
EID002 - 拉里
餐桌出勤
EMP_ID - EMP_NAME - ATTENDANCE_DATE
EID001 - 汤姆 - 20200101
EID002 - 拉里 - 20200101
EID001 - 汤姆 - 20200102
EID002 - 汤姆 - 20200103
EID002 - 汤姆 - 20200104
Table Leave_Record
EMP_ID - EMP_NAME - LEAVE_DATE(FROM) - LEAVE_DATE(TO) - DAYS - LEAVE_TYPE
EID002 - 拉里 - 20200102 - 20200102 - 1 - 休闲
EID002 - 拉里 - 20200103 - 20200103 - 1 - 生病了
EID002 - 拉里 - 20200104 - 20200104 - 1 - 年度
查看输出
EMP_ID - EMP_NAME - WORKING_DAYS - CASUAL_LEAVE - SICK_LEAVE - ANNUAL_LEAVE
EID001 -TOM - 4 - 0 - 0 - 0
EID002 - 拉里 - 4 - 1 - 1 - 1
MySql 查询:
SELECT EMP_ID, EMP_Name, SUM(Attendance. ATTENDANCE_DATE!='') as WORKING_DAYS, SUM(Leave_Record.LEAVE_TYPE='CASUAL') as CASUAL, SUM(Leave_Record.LEAVE_TYPE=SICK) as SICK , SUM(Leave_Record.LEAVE_TYPE=ANNUAL) as ANNUAL from Employee, Attendance, Leave_Record where Attendance. EMP_ID = Employee. EMP_ID AND Employee. EMP_ID = Leave_Record. EMP_ID GROUP BY Employee. EMP_ID order by Employee. EMP_ID
【问题讨论】:
-
请在代码问题中给出minimal reproducible example--cut & paste & runnable code,包括最小的代表性示例输入作为代码;期望和实际输出(包括逐字错误消息);标签和版本;明确的规范和解释。给出尽可能少的代码,即您显示的代码可以通过您显示的代码扩展为不正常的代码。 (调试基础。)对于包含 DBMS 和 DDL(包括约束和索引)和输入为格式化为表的代码的 SQL。 How to Ask 第一个表达式的代码没有给出你的期望,说出你的期望和原因。请参阅编辑帮助重新代码块。
标签: mysql sql join group-by sum