Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, с запросом / 3 сообщений из 3, страница 1 из 1
22.12.2003, 16:08
    #32359915
Mladov Alexey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с запросом
Привет всем.

Sybase ASE 11.9.2.6/NT4.0

Как правильно реализовать:

/*
create table oper(op_id numeric,op_date datetime,op_qty money, op_z money)
*/

declare @tmp numeric, @qty money
select @tmp=0, @qty=0

select (@tmp=@tmp+1),op_id,(@qty=@qty+isnull((op_qty*op_z),0))
into #tmp_tab
from oper
where op_date>@tmp_date
order by op_date

Т.е. нужно в первый столбец запихнуть номер по порядку, а в третий сумму предыдущих записей.
Например
для oper:
23 12/12/03 12 1
42 12/12/03 10 -1
52 13/12/03 5 -1
38 15/12/03 10 1
Рез-т должен быть:

1 23 12
2 42 2
3 52 -3
4 38 7

В вышеописанной реализации ругается на знак =
Пробовал
select (select @tmp=@tmp+1),op_id,(select @qty=@qty+isnull((op_qty*op_z),0))
Все равно ругается...

Сейчас есть аналог этого действия, но работающий через курсор, что отрицательно сказывается на производительности... 8(
Может, кто поможет?

Я волшебное слово знаю - ПОЖАЛУЙСТА.
...
Рейтинг: 0 / 0
22.12.2003, 16:30
    #32359953
Павел Воронцов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с запросом
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
select (select count(*) from oper o1 where o1.op_id<=o.op_id) as ordinal,
         o.op_id,
         (select sum(o2.op_z*o2.op_qty) from oper o2 where o2.op_id<=o.op_id) as qty
from oper o;

 -- или
 

select count(o1.op_id) as ordinal,
         o.op_id,
         sum(o1.op_z*o1.op_qty) as qty
from oper o inner join oper o1 on o1.op_id<=o.op_id
group by o.op_id;

 -- или
 

select count(o1.op_id) as ordinal,
         o.op_id,
         sum(o1.op_z*o1.op_qty) as qty
from oper o. oper o1 
where o1.op_id<=o.op_id
group by o.op_id;
...
Рейтинг: 0 / 0
22.12.2003, 16:43
    #32359978
Mladov Alexey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с запросом
Спасибо огромадное. Буду пробовать.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, с запросом / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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