2013-08-02 2 views
1

Может ли кто-нибудь мне помочь?Я получаю ошибку при выполнении хранимой процедуры

Я получаю следующее сообщение об ошибке

1064 - у Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, которое соответствует версии сервера MySQL для корректного синтаксиса использовать около «Как НАЧАТЬ SELECT COUNT (CustomerFeed.overall), как сидел ОТ Контакт-L» в строке 2

, когда я запускаю это утверждение.

DELIMITER // 
CREATE PROCEDURE GetAllProducts2(IN location VARCHAR(100), 
           IN start1 TIMESTAMP, 
           IN end1  TIMESTAMP) 
BEGIN 
    SELECT count(CustomerFeed.overall) AS sat 
    FROM ContactCenter 
     LEFT JOIN CustomerFeed 
      ON ContactCenter.callId = CustomerFeed.callId 
    WHERE date(ContactCenter.callClose) BETWEEN start1 AND end1 
     AND ContactCenter.callStatus = 'Close' 
     AND CustomerFeed.overall IN (1, 2) 
     AND ContactCenter.location = location 
     AND ContactCenter.gNum != ''; 
     END // 
DELIMITER; 
+3

Прежде всего: *** ЧТО ОШИБКА ??? *** Мы не можем видеть ваш экран и не читать ваш разум - вы должны сказать нам! Во-вторых: для чего ** конкретной базы данных ** системы? SQL - это только язык запросов - используется многими базами данных. –

+0

вы используете ** start ** и ** end ** в качестве имен переменных. Это ключевые слова в вашем sql. дайте ему другое имя –

+0

ошибка следующая: – namratha

ответ

0

Не используйте AS ключевое слово в stored procedure definition в MySql. Так что удалите его.

DELIMITER // 
CREATE PROCEDURE GetAllProducts2(IN location varchar(100), 
           IN start timestamp, 
           IN end timestamp) 
BEGIN 
    ... 
END // 
DELIMITER ; 
+1

Я попытался удалить, как и но, но не использовать – namratha

+0

, что тоже было моим догадкой. но вы сказали «не нужно», что означает, что с ним или без него все в порядке. Я подозреваю, что это не нормально. просто скажите, что – Bohemian

+0

@ user2598065 Вы по-прежнему получаете ту же ошибку после удаления 'AS'? – peterm

Смежные вопросы