0
我有这个查询,并且我试图在我的where子句中使用用户定义的变量@noVar来只显示那个变量的值为'是'的记录。 但是当我在下面的查询中使用Having @noVar ='Yes'时,它返回0结果。如何在where子句中使用用户定义的变量
SELECT svcreqdetail.id, svcreqcheckin.stime as checkin, @etime:= time(timestampadd(minute, svcreqdetail.hours*60 , concat(caredate,' ', caretime))) as endtime, svcreqcheckout.stime as checkout, time_to_sec(if(svcreqcheckout.stime > svcreqcheckin.stime,
timediff(svcreqcheckout.stime, svcreqcheckin.stime),
addtime(timediff(svcreqcheckout.stime, svcreqcheckin.stime), '24:00:00.000000')))/3600 AS wrkHrs, svcreqdetail.hours,
svcreqstatus.status, @checkoutvar:= time_to_sec(timediff(svcreqcheckout.stime, @etime))/60 as checkoutvar,@noVar:= if (@checkoutvar <= 15,'Yes', 'No') as noVar, qualif
FROM svcreqdetail
LEFT JOIN svcreqcheckin ON svcreqcheckin.reqid = svcreqdetail.id
LEFT JOIN svcreqcheckout ON svcreqcheckout.reqid = svcreqdetail.id
JOIN svcreqstatus ON svcreqstatus.reqdid = svcreqdetail.id
WHERE (yearweek(caredate) = yearweek(date_sub(CURRENT_DATE, INTERVAL 1 week))
AND svcreqstatus.status != 'Incompleted'
AND svcreqstatus.status != 'Deleted')
having @noVar = 'Yes'
是否有无论如何我可以在我的where子句中测试该变量。并感谢你
哪里是用户定义的变量来自?通常你使用了一个参数化的查询/准备语句。你能否提供使用的语言信息?或者这只是一个存储过程? – Jpsh
它是用select子句定义的,我将使用php,但是@noVar变量必须在查询中计算,因为我从其他列的计算中定义它 – LaliNonda