Я отредактировал этот вопрос, потому что нижеприведенные ответы касаются того, что при использовании времени и начала он должен находиться внутри хранимой процедуры.Ошибка кода ошибки цикла Mysql # 1064 внутри хранимой процедуры [изменен]
Итак, теперь я запускаю это внутри хранимой процедуры, но я все еще получаю сообщение об ошибке.
counter;
while counter < 2
begin
GOTO counter
SELECT var1 AS LOCATION,
ROUND(sum(CASE WHEN t2.tagid = var2 THEN t2.floatvalue ELSE 0 END), 2) AS MR
ROUND(sum(CASE WHEN t2.tagid = var3 THEN t2.floatvalue ELSE 0 END), 2) AS Flw,
ROUND(sum(CASE WHEN t2.tagid = var4 THEN t2.floatvalue ELSE 0 END), 2) AS Prs,
ROUND(sum(CASE WHEN t2.tagid = var5 THEN t2.floatvalue ELSE 0 END), 2) AS Lvl
FROM table2 t2
INNER JOIN table1 t1
ON t1.id = t2.tagid
WHERE t2.t_stamp = (SELECT MAX(t2.t_stamp)
FROM table2 t2
WHERE t1.id = t2.tagid)
counter = counter+1
end
1:
var1
var2
var3
var4
var5
2:
var1
var2
var3
var4
var5
Это ошибка, я получаю
MySQL said: #1064 -You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'begin GOTO counter SELECT var1 AS LOCATION, ROUND(sum(CASE WHEN t2.tagid' at line 2
И я не включил CREATE PROCEDURE
, потому что я видел пост, в котором это было проще просто перейти на ROUTINES
панели и вставки SQL Query без CREATE, DELIMITER ... и т. д. Как исправить эту ошибку?
Как вы это делаете? – peterm
Что ты имеешь в виду? на phpmyadmin Я пытаюсь предоставить ссылку sqlfiddle, но я думаю, что сейчас это – sleepsleepsleep90731
Я имею в виду, вы пытаетесь выполнить ее как пакет sql или это часть хранимой процедуры? Если это первый, вы можете сделать это в MySQL. См. Мой ответ. – peterm