powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / где ошибка:?
6 сообщений из 6, страница 1 из 1
где ошибка:?
    #32048432
pvnic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на код вылетает след ошибка:
A SELECT statement that assigns a value to a variable must not be combinated with data-retrieval function
ну и так 4-ре раза...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
CREATE PROCEDURE update_growth  AS

declare @ticker varchar( 50 )
declare @start decimal( 18 , 6 )
declare @stop decimal( 18 , 6 )
declare @stock  varchar( 50 )
declare @lastdate datetime

SELECT  top  1  @lastdate=startdate FROM minutes WHERE DATEDIFF(DAY, startdate, GETDATE()) >  1  order by id desc


DECLARE cur CURSOR FOR
select distinct alias, stock from tickers
OPEN cur
FETCH NEXT FROM cur
into @ticker, @stock
if @@fetch_status= 0  
begin

SELECT TOP  1  startdate, @stop=stop FROM minutes m 
WHERE ((DATEDIFF(DAY, m.startdate, @lastdate) <  1 )
AND (ticker = @ticker) and (stock=@stock)) ORDER BY startdate desc

SELECT TOP  1  startdate, @start=start FROM minutes m 
WHERE ((DATEDIFF(DAY, m.startdate, @lastdate) <  1 )
AND (ticker = @ticker) and (stock=@stock)) ORDER BY startdate

if (@stop<> 0 )
begin
update tickers set growth=(@stop-@start)/@stop
end
WHILE @@FETCH_STATUS =  0 
BEGIN
FETCH NEXT FROM cur
if @@fetch_status= 0  
begin
FETCH NEXT FROM cur
into @ticker, @stock
if @@fetch_status= 0  
begin

SELECT TOP  1  startdate, @stop=stop FROM minutes m 
WHERE ((DATEDIFF(DAY, m.startdate, @lastdate) <  1 )
AND (ticker = @ticker) and (stock=@stock)) ORDER BY startdate desc

SELECT TOP  1  startdate, @start=start FROM minutes m 
WHERE ((DATEDIFF(DAY, m.startdate, @lastdate) <  1 )
AND (ticker = @ticker) and (stock=@stock)) ORDER BY startdate

if @stop<> 0 
begin
update tickers set growth=(@stop-@start)/@stop
end
end
END
end
CLOSE cur
DEALLOCATE cur
...
Рейтинг: 0 / 0
где ошибка:?
    #32048437
Фотография VVG_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT TOP 1 startdate, @stop=stop FROM minutes m

нужно заменить на

SELECT TOP 1 @stop=stop FROM minutes m

ну и так 4-ре раза... :)
...
Рейтинг: 0 / 0
где ошибка:?
    #32048438
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
SELECT TOP  1  startdate, @stop=stop FROM minutes m 
Нельзя делать присвоение и вывод в одном запросе.
Помоему startdate, лишний.
...
Рейтинг: 0 / 0
где ошибка:?
    #32048443
pvnic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ок, убрал
теперь на последнюю строчку только ругается..
...
Рейтинг: 0 / 0
где ошибка:?
    #32048551
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ув. pvnic !
Если вы хотите получать ответы на свои вопросы, то пишите вместо теперь на последнюю строчку только ругается..
- на какой именно строчке скрипта происходит ошибка
- какая именно ошибка происходит. Можно скопировать ее сюда целиком, вреда от этого не будет
- можно указывать и версию сервера (из @@version) на всякий случай

Потому как не имею ваших таблиц невозможно проверить ваш скрипт у себя
...
Рейтинг: 0 / 0
где ошибка:?
    #32048622
pvnic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не было завершающего end
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / где ошибка:?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]