:: Visual Foxpro, Foxpro for DOS
Нумерация в группе
bmv
Автор

Сообщений: 29
Дата регистрации: 18.10.2002
Здравствуйте!
Подскажите, нужно пронумировать записи в таблице внутри каждой группы, т.е.
code NUM
188 - 1
188 - 2
190 - 1
190 - 2
190 - 3
Ratings: 0 negative/0 positive
Re: Нумерация в группе
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
"нумировать" (в порядке возрастания) какого столбца? (у тебя их два)

Доб... Ааа, еще и группа!
Какие варианты в GROUP BY и ORDER BY в SELECT тебе нравятся больше? )



Исправлено 1 раз(а). Последнее : of63, 08.09.18 14:46
Ratings: 0 negative/0 positive
Re: Нумерация в группе
bmv
Автор

Сообщений: 29
Дата регистрации: 18.10.2002
Столбец NUM должен получиться, для code = 188 (первая строка) необходимо получить 1, для следующей записи с code = 188 - 2 и т.д.
Ratings: 0 negative/0 positive
Re: Нумерация в группе
bmv
Автор

Сообщений: 29
Дата регистрации: 18.10.2002
В MSSQL это делается
ROW_NUMBER() OVER (PARTITION BY ... ORDER BY),
а как в Fox-е реализовать?
Ratings: 0 negative/0 positive
Re: Нумерация в группе
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
в фоксе "cтандартнтый" SQL-синтакс
SELECT набор полей;
FROM ...;
WHERE ...;
GROUB BY поле1, поле2...;
[ORDER BY ... по полям выходного набора данных]

напиши свой запрос из БД, которые тебя не устраивает

> ROW_NUMBER() OVER (PARTITION BY ... ORDER BY),
я этого не понимаю. Это стандарт SQL языка?



Исправлено 1 раз(а). Последнее : of63, 08.09.18 15:16
Ratings: 0 negative/0 positive
Re: Нумерация в группе
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
of63
> ROW_NUMBER() OVER (PARTITION BY ... ORDER BY),
я этого не понимаю. Это стандарт SQL языка?
И давно. SQL тоже обновляется.

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Нумерация в группе
bmv
Автор

Сообщений: 29
Дата регистрации: 18.10.2002
[quote of63]в фоксе "cтандартнтый" SQL-синтакс
SELECT набор полей;
FROM ...;
WHERE ...;
GROUB BY поле1, поле2...;
[ORDER BY ... по полям выходного набора данных]

Мне нужно проапдейтить поле num порядковым номером записи в группе
Ratings: 0 negative/0 positive
Re: Нумерация в группе
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
ssa
of63
> ROW_NUMBER() OVER (PARTITION BY ... ORDER BY),
я этого не понимаю. Это стандарт SQL языка?
И давно. SQL тоже обновляется.
Я на фоксе (и его SQL) сижу, виноват, что вторгся в вашу тематику )
Ratings: 0 negative/0 positive
Re: Нумерация в группе
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
[quote bmv][quote of63]в фоксе "cтандартнтый" SQL-синтакс
SELECT набор полей;
FROM ...;
WHERE ...;
GROUB BY поле1, поле2...;
[ORDER BY ... по полям выходного набора данных]

Мне нужно проапдейтить поле num порядковым номером записи в группе[/quote]
Мтк, что в парадигме SQL "все записи в базе не имеют номера", это невозможно. В некоторых рамках (озвуч задачу), это вполне реально
Ratings: 0 negative/0 positive
Re: Нумерация в группе
bmv
Автор

Сообщений: 29
Дата регистрации: 18.10.2002
Есть таблица некоторых услуг (поле code), есть поле num, оно должно быть уникальным
для услуги...
Ratings: 0 negative/0 positive
Re: Нумерация в группе
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
ну и GROUP BY code... не то?

Доб. или
GROUP BY code, или
GROUP BY num или
GROUP BY code,nun
(или наоборот)

Ты это все знаешь вероятно, про группировки



Исправлено 1 раз(а). Последнее : of63, 08.09.18 16:59
Ratings: 0 negative/0 positive
Re: Нумерация в группе
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
() если приписать к этим группировкам функцию SUM, то чисто свертки по индексам тензора, прикольно )



Исправлено 1 раз(а). Последнее : of63, 08.09.18 17:13
Ratings: 0 negative/0 positive
Re: Нумерация в группе
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Для отчётов эти самые "номер по порядку в группе" делаются обычно силами самого отчёта (например фоксового report - через наращиваемую переменную сбрасываемую для каждой группы).

Для чего бы надо было это делать в хранимой таблице... ну разве что разово... да и то - не нужно

Фоксовый SQL не имеет оконных функций, эмулируются они подзапросами глубоко через зад. Проще SCAN-ом с REPLACE-ом пронумеровать. При этом по хорошему нужно ещё какое-то поле в группе по которому записи упорядочиваться будут. т.к. нумерация "от балды, абы было" это ещё более ненужная штука чем хотя-бы нумерация "по порядку какого-то реквизита". Впрочем, если знаешь про Row_number() то понимаешь зачем там order by


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Нумерация в группе
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
тебе тоже понравилась эта простая задача!
ТС сделает эту фигню?! !
Ratings: 0 negative/0 positive
Re: Нумерация в группе
bmv
Автор

Сообщений: 29
Дата регистрации: 18.10.2002
Всем спасибо, сделал через SCAN.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 27 Victoriacom  (Гостей: 26)

© 2000-2024 Fox Club 
Яндекс.Метрика