Сам запрос отдельно работает, а вот с курсором - нет.
(sybase 12.3)
sqlcreate procedure test_saldo
(@data_begin DATE, @data_end DATE)
AS
BEGIN
-- Объявление переменных для расчета
DECLARE
@saldo int,
@debet int,
@kredit int
-- Инициализация переменных
SET @saldo = 0
SET @debet = 0
SET @kredit = 0
-- Выполнение первых запросов для выборок в таблицы
SELECT
prihod
INTO #prih_rash
FROM prih_rash
SELECT
ostatok
INTO #ostatok
FROM ostatok
SELECT
ostatok_sal
INTO #ostatok_saldo
FROM ostatok_saldo
-- Объявление и работа с курсором
DECLARE cur CURSOR FOR
SELECT *
FROM (
SELECT
*
FROM #prih_rash prih_rash
LEFT JOIN #ostatok zm ON prih_rash.name = zm.name
LEFT JOIN #ostatok ostat ON ostat.name = prih_rash.name
LEFT JOIN #ostatok_saldo os ON ostat.name = os.name
) AS res
-- Открытие курсора
OPEN cur
-- Цикл для работы с курсором
FETCH NEXT FROM cur INTO @saldo ;-- Загружаем первую строку
-- Обработка данных
WHILE @@FETCH_STATUS = 0
BEGIN
-- Ваши вычисления для saldo
SET @saldo = @saldo + @debet - @kredit
-- Считываем следующую строку
FETCH NEXT FROM cur INTO @saldo;
END;
-- Закрытие и освобождение курсора
CLOSE cur;
DEALLOCATE cur;
-- Удаление временных таблиц
DROP TABLE #ostatok
DROP TABLE #prih_rash
DROP TABLE #ostatok_saldo
END
GO
Ошибка
Incorrect syntax near the keyword 'FROM'.
Must declare variable '@@FETCH_STATUS'.
Incorrect syntax near the keyword 'FROM'.
Я думаю у меня ошибки в структуре.