我只需要在星期一执行这个过程;所以我首先在工作日()做了一个测试,但是有一个语法错误,我找不到错误是什么?
CREATE DEFINER=`root`@`localhost` PROCEDURE `fm_Upd_Histo_Inv`()
BEGIN
-- Test if it is Monday
CASE WEEKDAY(curdate()) = 0 then
insert into db1w_histo_inventory (year, week, store, total, to_do)
select year(curdate()),
WEEKOFYEAR(curdate()),
S.store,
count(S.INVDATE) as TotalToDo,
sum(datediff(curdate(), S.INVDATE) > '365') as 'TO_DO'
from mrqr_stock S
left join mrqr_organisms O
on O.ORGANISM = S.STORE
where (O.ORGANISM like '01%'
or O.ORGANISM like 'VV%'
or O.ORGANISM like 'IK%')
group by S.STORE
end;
END发布于 2017-09-05 15:05:03
CASE通常用在select、insert、update、delete等语句中。它不用于控制流。请改用IF。并设置不同的分隔符。
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `fm_Upd_Histo_Inv`()
BEGIN
-- Test if it is Monday
IF WEEKDAY(curdate()) = 0 then
insert into db1w_histo_inventory (year, week, store, total, to_do)
select year(curdate()),
WEEKOFYEAR(curdate()),
S.store,
count(S.INVDATE) as TotalToDo,
sum(datediff(curdate(), S.INVDATE) > '365') as 'TO_DO'
from mrqr_stock S
left join mrqr_organisms O
on O.ORGANISM = S.STORE
where (O.ORGANISM like '01%'
or O.ORGANISM like 'VV%'
or O.ORGANISM like 'IK%')
group by S.STORE
end if;
END $$
DELIMITER ;https://stackoverflow.com/questions/46048617
复制相似问题