我的数据库出现了一个奇怪的问题。我想创建一个新程序,但是我遇到了一些错误,我不知道出了什么问题。有人能帮助我吗?我正在使用phpMyAdmin
DELIMITER $$;
CREATE PROCEDURE liczSuma (IN newID INT)
BEGIN
SELECT encja.IDRezerwacja,SUM(encja.Suma)
FROM (
SELECT pokojpozycja.IDRezerwacja,SUM(pokoj.CenaPokoj) AS Suma
FROM `pokojpozycja`
LEFT JOIN pokoj ON pokoj.IDPokoj = pokojpozycja.IDPokoj
GROUP BY pokojpozycja.IDRezerwacja
WHERE pokojpozycja.IDRezerwacja = newID ;
UNION
SELECT uslugapozycja.IDRezerwacja , SUM(usluga.CenaUsluga) AS Suma
FROM `uslugapozycja`
LEFT JOIN usluga ON usluga.IDUsluga = uslugapozycja.IDUsluga
GROUP BY (uslugapozycja.IDRezerwacja)
WHERE uslugapozycja.IDRezerwacja = newID
)AS encja
GROUP BY (encja.IDRezerwacja)
END
DELIMITER $$;
答案 0 :(得分:0)
您有许多SQL语法错误,包括GROUP BY
之前的WHERE
,虚假分号以及查询后缺少分隔符。
DELIMITER $$
CREATE PROCEDURE liczSuma (IN newID INT)
BEGIN
SELECT encja.IDRezerwacja,SUM(encja.Suma)
FROM (
SELECT pokojpozycja.IDRezerwacja,SUM(pokoj.CenaPokoj) AS Suma
FROM `pokojpozycja`
LEFT JOIN pokoj ON pokoj.IDPokoj = pokojpozycja.IDPokoj
WHERE pokojpozycja.IDRezerwacja = newID
GROUP BY pokojpozycja.IDRezerwacja
UNION
SELECT uslugapozycja.IDRezerwacja , SUM(usluga.CenaUsluga) AS Suma
FROM `uslugapozycja`
LEFT JOIN usluga ON usluga.IDUsluga = uslugapozycja.IDUsluga
WHERE uslugapozycja.IDRezerwacja = newID
GROUP BY (uslugapozycja.IDRezerwacja)
) AS encja
GROUP BY (encja.IDRezerwacja);
END
DELIMITER ;
(专业提示:说“我收到一些错误”没有帮助。提供错误。)