Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / как в select вызвать нумерацию возврщаемых строк / 17 сообщений из 17, страница 1 из 1
05.02.2004, 15:05
    #32399506
ech
ech
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как в select вызвать нумерацию возврщаемых строк
как в select вызвать нумерацию возврщаемых строк
...
Рейтинг: 0 / 0
05.02.2004, 15:22
    #32399543
Рыжий Кот
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как в select вызвать нумерацию возврщаемых строк
NUMBER ( * )

...
Рейтинг: 0 / 0
05.02.2004, 15:24
    #32399550
ech
ech
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как в select вызвать нумерацию возврщаемых строк
пробовал не дает,
у меня сайбейс интерпрайз 11.5
на ASE Number работает...
...
Рейтинг: 0 / 0
05.02.2004, 15:58
    #32399637
Рыжий Кот
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как в select вызвать нумерацию возврщаемых строк
щас придет arcrus и все станет ясно :)

...
Рейтинг: 0 / 0
05.02.2004, 17:28
    #32399863
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как в select вызвать нумерацию возврщаемых строк
Ну сейчас получилось через час и даже больше :) Не зря я все таки топик насчет того, чтобы писать какое СУБД используется, недавно наверх поднимал - интуиция понимаешь :)

Проблема в том, что ASE и IQ я в глаза не видел. Но знаю MSSQL. Частенько это помогает.

Попробуйте поискать функцию IDENTITY(). Если ее нет, то могу предложить решение, которое работает на MSSQL:
1. Организовать временную таблицу с структурой, аналогичной полям возвращаемого запроса, как CREATE TABLE #TableName ... Плюс в нее же добавьте поле: NN int identity
2. Вставьте в эту таблицу результат возвращаемый Вашим запросом через INSERT INTO #TableName ... SELECT ...
3. Теперь достаточно написать SELECT * FROM #TableName, и Вы получите искомую нумерацию строк в поле NN

Повторенье, мать ученья, так что еще раз рекомендую почаще поглядывать на форум и FAQ по MSSQL на sql.ru, там очень много решений, которые подходят и для Sybase СУБД.
...
Рейтинг: 0 / 0
06.02.2004, 01:20
    #32400125
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как в select вызвать нумерацию возврщаемых строк
В ранних версиях ASA была функция NUMBER(). В ASA7 она была объявлена как deprecated. Про ASE не скажу :)

Лично я никогда не нумерую строки в запросах. Если уж понадобится такая штука, то намного проще пронумеровать на клиенте, при отображении результата запроса.
Чаще бывает нужно сделать что-то типа "нарастающего итога", в принципе тоже задача для клиента, но иногда при вложеных вызовах ХП надо. Тогда я делаю через временные таблицы типа такого:

create table #rep(PaymentDate date, Amount money, MonthToDate money, PaymentDays integer);
insert into #rep(PaymentDate, Amount) select .......;

А потом заполняем поля счетчики:

update #rep a set MonthToDate=(select sum(b.Amount) from #rep b where b.PaymentDate<=a.PaymentDate);

update #rep a set PaymentDays=(select count(*) from #rep b where b.PaymentDate<=a.PaymentDate);
...
Рейтинг: 0 / 0
09.02.2004, 09:16
    #32402137
Programm writer.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как в select вызвать нумерацию возврщаемых строк
select (select count(*) from Zvit where ID_Zvit<=z.ID_Zvit) as f , * from Zvit z
...
Рейтинг: 0 / 0
09.02.2004, 09:19
    #32402141
Programm writer.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как в select вызвать нумерацию возврщаемых строк
или можно так:

select (select sum(1) from Zvit where ID_Zvit<=z.ID_Zvit) as 'Count' , * from Zvit z
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
20.10.2008, 12:13
    #35603923
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как в select вызвать нумерацию возврщаемых строк
тоже стало интересно как пронумеровать строки.
результаты запроса нет к чему привязать чтоб сделать нумерацию (последние два предложенных варианта).
вариант с identity не работает.
ASE 12.5
...
Рейтинг: 0 / 0
21.10.2008, 14:29
    #35606670
golsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как в select вызвать нумерацию возврщаемых строк
ASE 12.5
Вот этот код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
create table #rs (ResourceID numeric ( 15 , 0 ),
                  ID numeric ( 15 , 0 ) identity)
insert #rs (ResourceID)
select ResourceID from tResource where DateStart = '20081020' 

select * from #rs

drop table #rs
дает результат
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
ResourceID	ID
 10092462354 	 1 
 10092462355 	 2 
 10092462356 	 3 
 10092462357 	 4 
 10092462369 	 5 
 10092462370 	 6 
 10092462371 	 7 
 10092462372 	 8 
 10092462377 	 9 
 10092462378 	 10 
 10092462383 	 11 
 10092462384 	 12 
...
Рейтинг: 0 / 0
30.10.2008, 09:31
    #35624594
Imperous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как в select вызвать нумерацию возврщаемых строк
golsaASE 12.5
Вот этот код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
create table #rs (ResourceID numeric ( 15 , 0 ),
                  ID numeric ( 15 , 0 ) identity)
insert #rs (ResourceID)
select ResourceID from tResource where DateStart = '20081020' 

select * from #rs

drop table #rs
дает результат
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
ResourceID	ID
 10092462354 	 1 
 10092462355 	 2 
 10092462356 	 3 
 10092462357 	 4 
 10092462369 	 5 
 10092462370 	 6 
 10092462371 	 7 
 10092462372 	 8 
 10092462377 	 9 
 10092462378 	 10 
 10092462383 	 11 
 10092462384 	 12 


хмм, действительно работает :)
...
Рейтинг: 0 / 0
20.11.2008, 06:11
    #35664490
AT/F0x
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как в select вызвать нумерацию возврщаемых строк
Добавлю свои 5 копеек

Пользую Delphi 2006 VCL, Sybase ASA 9.
Задача не столько пронумеровать строки, сколько получить разделение "четный-не четный".
Естественно, TADODataSet для RecNo возвращает традиционное -1, так что "средства клиента отпадают".
Решил вопрос путем добавления в SELECT поля NUMBER(), которое аккуратно строки в результирующем наборе нумерует.
Однако, выяснилось что NUMBER не дружит с SELECT DISTINCT, и даже такой простенький запрос отваливается с ошибкой Statement contains an illegal usage of the NUMBER(*) function
Код: plaintext
1.
SELECT DISTINCT NUMBER() AS number,partnum
FROM spare
Пришлось временно решить вопрос вот так
Код: plaintext
1.
2.
3.
SELECT NUMBER() AS number, a.* FROM (
SELECT DISTINCT partnum
FROM spare
) a
однако объемы большие, ИМХО решение так себе.

Временные таблицы не возможны.
Есть у кого идеи?
...
Рейтинг: 0 / 0
20.11.2008, 10:29
    #35664832
sPaul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как в select вызвать нумерацию возврщаемых строк
Код: plaintext
1.
SELECT NUMBER() AS number, partnum
FROM spare group by partnum
?
...
Рейтинг: 0 / 0
29.11.2008, 15:25
    #35683440
AT/F0x
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как в select вызвать нумерацию возврщаемых строк
sPaul
Код: plaintext
1.
SELECT NUMBER() AS number, partnum
FROM spare group by partnum
?
Код: plaintext
1.
2.
SELECT DISTINCT NUMBER() AS number,partnum
FROM spare
GROUP BY partnum
То же самое - Statement contains an illegal usage of the NUMBER(*) function
...
Рейтинг: 0 / 0
29.11.2008, 15:28
    #35683441
AT/F0x
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как в select вызвать нумерацию возврщаемых строк
Сорри за предыдущее сообщение. Упор - на DISTINCT, GROUP BY не в тему. Без DISTINCT все работает, но у меня 11 тыс. позиций склада, а из него номенклатуру получить можно только DISTINCT'ом.
...
Рейтинг: 0 / 0
29.11.2008, 20:27
    #35683590
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как в select вызвать нумерацию возврщаемых строк
AT/F0xВременные таблицы не возможны
Думаю, тебе придётся пересмотреть свою позицию в этом вопросе ;).
...
Рейтинг: 0 / 0
03.12.2008, 10:07
    #35689684
Andruha_K
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как в select вызвать нумерацию возврщаемых строк
golsa, не по теме конечно.
но этот пример (таблица Tresource и вообще), сильно мне Диасофт напоминает. :) Я угадал?
А так - полностью согласен.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / как в select вызвать нумерацию возврщаемых строк / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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