powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Помогите пожалуйста с построением запроса
6 сообщений из 6, страница 1 из 1
Помогите пожалуйста с построением запроса
    #33950277
bmp2006
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Такая задача:
есть таблица PARADOX t1 из полей:

1. sys_num - уникальное int
2. num - int
3. open_date - дата
4. account - int

пример записей

|1|1|01.03.2005|29|
|2|3|01.03.2005|29|
|3|5|01.03.2005|33|
|4|1|01.03.2005|33|
|5|3|01.03.2005|33|
|6|2|02.03.2005|29|
|7|3|02.03.2005|29|
|8|5|02.03.2005|29|

Требуется изменить значения num таким образом чтобы они для каждой даты (для каждого нового дня) и для каждого account начинались с 1 и шли по порядку 1,2,3..
Чтобы в итоге было вот так:

|1|1|01.03.2005|29|
|2|2|01.03.2005|29|
|3|1|01.03.2005|33|
|4|2|01.03.2005|33|
|5|3|01.03.2005|33|
|6|1|02.03.2005|29|
|7|2|02.03.2005|29|
|8|3|02.03.2005|29|

Для выполнения запросов использую DBD32(Борланд) Как это можно реализовать SQL запросом?
...
Рейтинг: 0 / 0
Помогите пожалуйста с построением запроса
    #33953793
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
update t1 u_t1
  set u_t1.num=
(select count(*)
   from t1
   where open_date=u_t1.open_date and account=u_t1.account and sys_num<=u_t1.sys_num)
...
Рейтинг: 0 / 0
Помогите пожалуйста с построением запроса
    #33953797
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за разминку мозгов, совсем за день затекли.
...
Рейтинг: 0 / 0
Помогите пожалуйста с построением запроса
    #33953865
Фотография savosin_sergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
допустим, что
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
create table t1 (sysnum int, num int, open_date date, account int)
insert into t1 (sysnum, num, open_date, account) values ( 1 ,  1 , '01.03.2005',  29 )
insert into t1 (sysnum, num, open_date, account) values ( 2 ,  3 , '01.03.2005',  29 )
insert into t1 (sysnum, num, open_date, account) values ( 3 ,  5 , '01.03.2005',  33 )
insert into t1 (sysnum, num, open_date, account) values ( 4 ,  1 , '01.03.2005',  33 )
insert into t1 (sysnum, num, open_date, account) values ( 5 ,  3 , '01.03.2005',  33 )
insert into t1 (sysnum, num, open_date, account) values ( 6 ,  2 , '02.03.2005',  29 )
insert into t1 (sysnum, num, open_date, account) values ( 7 ,  3 , '02.03.2005',  29 )
insert into t1 (sysnum, num, open_date, account) values ( 8 ,  5 , '02.03.2005',  29 )

вот этот запрос отбирает то, что тебе нужно.. можно вставить его во временную таблицу, и потом..
Код: plaintext
1.
2.
3.
4.
5.
select alias1.sysnum, count(alias2.sysnum)
 from t1 alias1 left join t1 alias2
 on alias1.open_date=alias2.open_date
  and alias1.account=alias2.account
  and alias1.sysnum>=alias2.sysnum
 group by alias1.sysnum
..что-нибудь потом
...
Рейтинг: 0 / 0
Помогите пожалуйста с построением запроса
    #33954879
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 savosin_sergey:
А чем от моего решения отличается, кроме мусора типа временных таблиц?
...
Рейтинг: 0 / 0
Помогите пожалуйста с построением запроса
    #33955507
Фотография savosin_sergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я случайно запостил позже -- долго думал :) если бы твоё увидел -- то было бы постом меньше (если не тремя)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Помогите пожалуйста с построением запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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