max()
我已经尝试了很多但是这个查询中的错误没有得到解决。
我试图根据表中的结束日期是否为空来区分语句。
答案 0 :(得分:0)
案例条款不会那样工作。您的查询可以大大简化如下。此外,列名和表名使用后面的勾号引用,而不是单引号。
SELECT
`EmpId`,
`Emp_Name`,
`Salary`,
`Start_date`,
`End_dat`,
IF(`End_Date` is null,
DATEDIFF(DATE_ADD(`Start_Date`, INTERVAL 30 DAY), `Start_Date`) * `Salary` / 30,
DATEDIFF(`End_Date`, `Start_Date`) * `Salary` / 30) as `Total_Salary`
FROM `Employees`
答案 1 :(得分:0)
试试这个:
SELECT EmpId,
Emp_Name,
Salary ,
Start_date ,
End_dat ,
CASE
WHEN (Employees.End_Date is null)
THEN DATEDIFF(DATE_ADD(Start_Date, INTERVAL 30 DAY), Start_Date) * Salary/30
ELSE DATEDIFF(End_Date, Start_Date) * Salary/30 END AS Total_Salary
From Employees;