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

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

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

Проблема в том, что 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
как в select вызвать нумерацию возврщаемых строк
    #32400125
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В ранних версиях 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
как в select вызвать нумерацию возврщаемых строк
    #32402137
Programm writer.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
select (select count(*) from Zvit where ID_Zvit<=z.ID_Zvit) as f , * from Zvit z
...
Рейтинг: 0 / 0
как в select вызвать нумерацию возврщаемых строк
    #32402141
Programm writer.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
или можно так:

select (select sum(1) from Zvit where ID_Zvit<=z.ID_Zvit) as 'Count' , * from Zvit z
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
как в select вызвать нумерацию возврщаемых строк
    #35603923
Imperous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тоже стало интересно как пронумеровать строки.
результаты запроса нет к чему привязать чтоб сделать нумерацию (последние два предложенных варианта).
вариант с identity не работает.
ASE 12.5
...
Рейтинг: 0 / 0
как в select вызвать нумерацию возврщаемых строк
    #35606670
golsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
как в select вызвать нумерацию возврщаемых строк
    #35624594
Imperous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
как в select вызвать нумерацию возврщаемых строк
    #35664490
AT/F0x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавлю свои 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
как в select вызвать нумерацию возврщаемых строк
    #35664832
sPaul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
SELECT NUMBER() AS number, partnum
FROM spare group by partnum
?
...
Рейтинг: 0 / 0
как в select вызвать нумерацию возврщаемых строк
    #35683440
AT/F0x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
как в select вызвать нумерацию возврщаемых строк
    #35683441
AT/F0x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сорри за предыдущее сообщение. Упор - на DISTINCT, GROUP BY не в тему. Без DISTINCT все работает, но у меня 11 тыс. позиций склада, а из него номенклатуру получить можно только DISTINCT'ом.
...
Рейтинг: 0 / 0
как в select вызвать нумерацию возврщаемых строк
    #35683590
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AT/F0xВременные таблицы не возможны
Думаю, тебе придётся пересмотреть свою позицию в этом вопросе ;).
...
Рейтинг: 0 / 0
как в select вызвать нумерацию возврщаемых строк
    #35689684
Andruha_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
golsa, не по теме конечно.
но этот пример (таблица Tresource и вообще), сильно мне Диасофт напоминает. :) Я угадал?
А так - полностью согласен.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / как в select вызвать нумерацию возврщаемых строк
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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