Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
помогите с запросом
|
|||
|---|---|---|---|
|
#18+
есть таблица с полями names pos 1 2 1 2 1 3 2 1 2 1 надо запросом упорядочить таблицу так чтобы стало names pos 1 1 1 2 1 3 2 1 2 2 не могу найти в форуме, нужно очень ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2002, 08:28 |
|
||
|
помогите с запросом
|
|||
|---|---|---|---|
|
#18+
А что, order by уже не работает? select * from ... order by names, pos ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2002, 09:07 |
|
||
|
помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Добрый день, Возможно, это то, что Вам необходимо: \nSELECT names, pos FROM (SELECT distinct pos, names FROM #T) A ORDER BY names Удачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2002, 09:18 |
|
||
|
помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Я ИЗВИНЯЮСЬ, ОШИБСЯ НАДО ПРОАПДЕЙТИТЬ POS, ТАК ЧТОБЫ В НЕМ стало names pos 1 1 1 2 1 3 2 1 2 2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2002, 09:28 |
|
||
|
помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Пардон, не совсем въехал в условие. После внимательного прочтения все равно не понял - зачем держать вычисляемое, постоянно меняюющееся во всей таблице поле pos. Если в таблице есть какой-нибудь ПК типа id, то pos можно родить следующим запросом: select names, ( select count(*) from t as t_inner where t_inner.names = t_outer.names and t_inner.id <= t_outer.id ) as pos from t as t_outer order by names, id Если ПК нет, то ... "нет ножек - нет варенья" (с). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2002, 09:34 |
|
||
|
помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Уточните пожалуйста, должно получиться декартово произведение возможных значений столбцов? Или еще как-то похитрей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2002, 09:45 |
|
||
|
помогите с запросом
|
|||
|---|---|---|---|
|
#18+
2 Ольга все проще в pos должен содержаться порядкой номер names вот так names pos 2 1 2 2 2 3 2 4 2 5 2 6 2 7 5 1 5 2 5 3 5 4 и т.д. 2 all извините за невнятный пост, просто аврал был ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2002, 10:21 |
|
||
|
помогите с запросом
|
|||
|---|---|---|---|
|
#18+
2 Ольга все проще в pos должен содержаться порядкой номер names вот так names pos 2 1 2 2 2 3 2 4 2 5 2 6 2 7 5 1 5 2 5 3 5 4 и т.д. 2 all извините за невнятный пост, просто аврал был никак не мог сооьразить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2002, 10:22 |
|
||
|
помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Если я правильно поняла, то 1. старые значения pos не нужны? 2. в какой очередности (ORDER BY) должны присваиваться порядковые номера одинаковым names? 3. и если какую-то запись c определенным names удалить, все по-новой должно update для этого names? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2002, 10:49 |
|
||
|
помогите с запросом
|
|||
|---|---|---|---|
|
#18+
2 Ольга >1. старые значения pos не нужны? да, не нужны >2. в какой очередности (ORDER BY) должны присваиваться порядковые номера одинаковым names? без разницы >3. и если какую-то запись c определенным names удалить, все по-новой должно update для этого names? да, все правильно спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2002, 11:37 |
|
||
|
помогите с запросом
|
|||
|---|---|---|---|
|
#18+
А зачем тогда записи апдейтить? Может, этот подсчет в запросе делать? Позволю себе ссылку: FAQ.Нумерация записей в запросе Т.е. если таблица не очень большая и есть счетчик, можно так: SELECT TOP 100 PERCENT name, (SELECT SUM(1) FROM Table1 t1 WHERE t1.id <= t2.id AND t1.name = t2.name) AS pos FROM Table1 t2 ORDER BY name ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2002, 12:05 |
|
||
|
помогите с запросом
|
|||
|---|---|---|---|
|
#18+
To qwerty По-моему, ответ на второй вопрос, дает мне основание сказать, что Вам нужно что-то другое. Ну, будут болтаться в таблице псевдонумерованные names, ну возни с ними вагон. Можно создать уникальный автоинкрементый индекс, пусть он работает, если вам порядок важен. А если порядок не важен, то ЗАЧЕМ нумеровать записи программно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2002, 13:05 |
|
||
|
помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Уважаемая Ольга, насколько я понял из названий полей и условий, qwerty нужна автоматическая нумерация позиций в документах, например счетах или накладных. qwerty, я прояснил или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2002, 13:30 |
|
||
|
помогите с запросом
|
|||
|---|---|---|---|
|
#18+
2 KonstN верно 2 Ольга автоинкремент не подходит все дело в том, что с полей names и pos сняли уникальный констрейн ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2002, 14:13 |
|
||
|
помогите с запросом
|
|||
|---|---|---|---|
|
#18+
2 KonstN верно 2 Ольга автоинкремент не подходит все дело в том, что с полей names и pos сняли уникальный констрейн ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2002, 14:13 |
|
||
|
помогите с запросом
|
|||
|---|---|---|---|
|
#18+
To KonstN Нумерация накладных - дело не простое, более того, эти вещи фиксируются в первичных бух. док-тах и если их запросто менять в базе данных ( и порядок не важен) ВАШ БУХГАЛТЕР и сесть может и это не смешно. Спросите у бухгалтеров, как работают они с документами такого рода. To qwerty Скорее всего, FAQ вы прочли, и это то что Вам надо. А если нет, то проясните задачу С уважением, Ольга ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2002, 14:33 |
|
||
|
помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Ольга, я ж написал "например" Например, это не счёт или накладная, а порядок вывода анкедотов на сайте anekdot.ru по дням недели. Просто задача нумерации внутри групп. А насчёт проблем, я думаю, что сделал backup, не так ли qwerty? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2002, 14:40 |
|
||
|
помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Приветствую всех, Решение "в лоб": \nDECLARE @pos int, @names int DECLARE names_curosor CURSOR FOR SELECT DISTINCT names FROM MyTable OPEN names_curosor FETCH NEXT FROM names_curosor INTO @names WHILE @@FETCH_STATUS = 0 BEGIN SET @pos = 0 UPDATE #T SET @pos = pos = @pos + 1 WHERE names = @names FETCH NEXT FROM names_curosor INTO @names END CLOSE names_curosor DEALLOCATE names_curosor Курсор можно заменить на таблицу с флажком. Ну и блокировать таблицу надо... Удачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2002, 15:08 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32030181&tid=1822735]: |
0ms |
get settings: |
12ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
142ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 282ms |
| total: | 527ms |

| 0 / 0 |
