选择查询案例问题

时间:2017-07-16 06:11:13

标签: mysql stored-procedures

max()

我已经尝试了很多但是这个查询中的错误没有得到解决。

我试图根据表中的结束日期是否为空来区分语句。

2 个答案:

答案 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;