我有关于我的脚本的问题,为什么我不能在子查询中使用where子句(其中counter ='1')
SELECT effectiveDate,
(SELECT
(CASE
WHEN note='REGULAR LOGGED'
THEN log
WHEN description = description
THEN description
END)
FROM timesheet WHERE counter ='1'
) as Counter1
FROM schedules t1 LEFT JOIN timesheet t2 ON t1.empid = t2.empid AND t1.effectiveDate = t2.date
LEFT JOIN holidays t3 ON t1.effectiveDate = t3.date WHERE t1.empid ='40'
AND YEAR(t1.effectiveDate) = YEAR(CURDATE()) AND MONTH(t1.effectiveDate) = '1' GROUP BY t1.effectiveDate
答案 0 :(得分:0)
首先,你的照片不是样本;它只是你的查询,但是在截图中。
其次,您的答案实际上就在图片中:错误消息表明您的子查询返回多行。实际上,如果在select语句中使用子查询,那么该查询显然应该只返回一行。
答案 1 :(得分:0)
使用不同或分组案例陈述。
应该是这样的:
SELECT DISTINCT CASE WHEN .... END FROM TABLE WHERE
不推荐使用像这样的subquerys,在select语句中逐行评估的成本可能会很大。
提示:尝试改进您的表格结构。