2014-01-19 2 views
0

Я пытаюсь выполнить следующий запрос без везения. В нем говорится:phpmyadmin - Ошибка в sql-запросе

# 1064 - У вас возникла ошибка в синтаксисе SQL; в руководстве, соответствует версии сервера MySQL для корректного синтаксиса использовать около «» в строке 32

Я не могу указать на какие-либо ошибки. Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно здесь?

DELIMITER $$ 
-- 
-- Procedures 
-- 
CREATE PROCEDURE `Acc_Ledger`(IN `startDate` VARCHAR(200), IN `endDate` VARCHAR(200), IN `p_id` INT) 
BEGIN 
    DECLARE RunningTotal, deb, cred DECIMAL(19,2); 
    DECLARE counter, row_count int; 

    SET RunningTotal = 0; 
    SET counter = 1; 

    DROP TABLE IF EXISTS LedgerTbl; 

    CREATE TEMPORARY TABLE LedgerTbl (CTR int primary key auto_increment, PARTY_ID INT,VRDATE VARCHAR(200),VRNOA VARCHAR(200),ETYPE VARCHAR(50),DESCRIPTION VARCHAR(500),DEBIT DECIMAL(19,2),CREDIT DECIMAL(19,2),RTotal DECIMAL(19,2)); 

    INSERT INTO LedgerTbl 
    SELECT null, PARTY_ID,VRDATE,DCNO,ETYPE,DESCRIPTION,DEBIT,CREDIT, null FROM pledger WHERE PARTY_ID=p_id AND DATE(VRDATE) BETWEEN startDate AND endDate 
    ORDER BY VRDATE,ETYPE,DCNO; 

    SET @RunningTotal := 0; 

    SELECT SUM(DEBIT)-SUM(CREDIT) FROM pledger WHERE DATE(VRDATE) < startDate AND party_id = p_id INTO @RunningTotal; 

    IF ISNULL(@RunningTotal) THEN 
     SET @RunningTotal := 0; 
    END IF; 

    UPDATE LedgerTbl 
    SET RTotal = (@RunningTotal := @RunningTotal + (DEBIT - CREDIT)); 

    SELECT * FROM LedgerTbl; 
END$$ 

ответ

0

Я пропустил

DELIMITER ; 

в конце запроса. Добавлено это, и все работает нормально.