powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / SELECT,FoxPro
21 сообщений из 21, страница 1 из 1
SELECT,FoxPro
    #34123768
нач
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть 2 таблицы-mlcen.dbf и mlabel.dbf
как написать чтобы в 1-ую таблицу записывались все поля второй таблицы если нет такой записи в первой
ключевые поля в таблицах-grup,nnum
помоги, очень надо....
...
Рейтинг: 0 / 0
SELECT,FoxPro
    #34123786
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы что в одной группе учитесь

http://forum.foxclub.ru/read.php?29,235905]
...
Рейтинг: 0 / 0
SELECT,FoxPro
    #34123854
нач
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWistВы что в одной группе учитесь

http://forum.foxclub.ru/read.php?29,235905]

лучше помог.....
...
Рейтинг: 0 / 0
SELECT,FoxPro
    #34123926
нач
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хоть ссылку на ответ скиньте, плис.....
...
Рейтинг: 0 / 0
SELECT,FoxPro
    #34124044
начесть 2 таблицы-mlcen.dbf и mlabel.dbf
как написать чтобы в 1-ую таблицу записывались все поля второй таблицы если нет такой записи в первой
ключевые поля в таблицах-grup,nnum
помоги, очень надо....
примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select a.*, nvl(b.nnum, 0 ) as priznak ;
from mlabel a ;
left outer join mlcen b ;
on a.group=b.group and a.nnum=b.nnum ;
into cursor query nofilter

insert into mlcen (<перечень полей>) ;
select <перечень полей> from query where priznak= 0 
...
Рейтинг: 0 / 0
SELECT,FoxPro
    #34124086
Alex-ZZZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
SELE MLABEL
GO TOP
DO WHILE !EOF()

AAA=MLABEL.GRUP
BBB=MLABEL.NNUM

*ЕСЛИ БАЗЫ ПРОИНДЕКСИРОВАННЫ ТО SEEK ЕСЛИ НЕТ ТО ТАК

SELE MLCEN.* FROM MLCEN INTO CURSOR OPPA;
WHERE MLCEN.GRUP=AAA .AND. MLCEN.NNUM=BBB

CCC=RECCOUNT()

IF CCC= 0 
   SELE MLCEN
   APPEND BLANK
   REPLACE MLCEN.GRUP WITH OPPA.GRUP, MLCEN.NNUM WITH OPPA.NNUM
ENDIF

SELE MLABEL
SKIP
ENDDO

ВОТ ПОМОЕМУ ТАК . СМОТРИ ПРОВЕРЯЙ РАБОТОСПОСОБНОСТЬ НЕ ГАРАНТИРУЮ НО ИДЕЯ ТАКАЯ ВОТ.
...
Рейтинг: 0 / 0
SELECT,FoxPro
    #34124172
нач
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Станислав С начесть 2 таблицы-mlcen.dbf и mlabel.dbf
как написать чтобы в 1-ую таблицу записывались все поля второй таблицы если нет такой записи в первой
ключевые поля в таблицах-grup,nnum
помоги, очень надо....
примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select a.*, nvl(b.nnum, 0 ) as priznak ;
from mlabel a ;
left outer join mlcen b ;
on a.group=b.group and a.nnum=b.nnum ;
into cursor query nofilter

insert into mlcen (<перечень полей>) ;
select <перечень полей> from query where priznak= 0 


сорииииии, не поля, а стороки которых нет
то есть завели новую группу и номер в группе, или новый номер а группа уже есть...
???????
...
Рейтинг: 0 / 0
SELECT,FoxPro
    #34124238
нач Станислав С начесть 2 таблицы-mlcen.dbf и mlabel.dbf
как написать чтобы в 1-ую таблицу записывались все поля второй таблицы если нет такой записи в первой
ключевые поля в таблицах-grup,nnum
помоги, очень надо....
примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select a.*, nvl(b.nnum, 0 ) as priznak ;
from mlabel a ;
left outer join mlcen b ;
on a.group=b.group and a.nnum=b.nnum ;
into cursor query nofilter

insert into mlcen (<перечень полей>) ;
select <перечень полей> from query where priznak= 0 


сорииииии, не поля, а стороки которых нет
то есть завели новую группу и номер в группе, или новый номер а группа уже есть...
???????
Объясняю популярно:
LEFT OUTER JOIN соединяет две таблицы таким образом, что левая входит в выборку полностью, а от правой попадают данные только с совпадающими значениями ключевых полей...
Функция NVL заменяет отсутствующие значения на (в данном запросе) 0...
Таким образом, получаем, что все записи, которых нет в mlcеn, но есть в mlabel в нашем запросе будут иметь признак равный 0 (priznak=0).
Поскольку структура результирующего курсора отличается от структуры таблицы mlcen, то использован вариант дополнения таблицы:

Insert into mlcen(<перечень полей>) select <перечень полей> from query where priznak=0

Почитай-ка для начала Хелп по Insert-SQL, LEFT OUTER JOIN и по NVL.... А уже потом задавай вопросы...
...
Рейтинг: 0 / 0
SELECT,FoxPro
    #34126077
нач
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Станислав С нач Станислав С начесть 2 таблицы-mlcen.dbf и mlabel.dbf
как написать чтобы в 1-ую таблицу записывались все поля второй таблицы если нет такой записи в первой
ключевые поля в таблицах-grup,nnum
помоги, очень надо....
примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select a.*, nvl(b.nnum, 0 ) as priznak ;
from mlabel a ;
left outer join mlcen b ;
on a.group=b.group and a.nnum=b.nnum ;
into cursor query nofilter

insert into mlcen (<перечень полей>) ;
select <перечень полей> from query where priznak= 0 


сорииииии, не поля, а стороки которых нет
то есть завели новую группу и номер в группе, или новый номер а группа уже есть...
???????
Объясняю популярно:
LEFT OUTER JOIN соединяет две таблицы таким образом, что левая входит в выборку полностью, а от правой попадают данные только с совпадающими значениями ключевых полей...
Функция NVL заменяет отсутствующие значения на (в данном запросе) 0...
Таким образом, получаем, что все записи, которых нет в mlcеn, но есть в mlabel в нашем запросе будут иметь признак равный 0 (priznak=0).
Поскольку структура результирующего курсора отличается от структуры таблицы mlcen, то использован вариант дополнения таблицы:

Insert into mlcen(<перечень полей>) select <перечень полей> from query where priznak=0

Почитай-ка для начала Хелп по Insert-SQL, LEFT OUTER JOIN и по NVL.... А уже потом задавай вопросы...

что то у меня не получается....
...
Рейтинг: 0 / 0
SELECT,FoxPro
    #34126118
Maltsev_MaxЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А указать, что конкретно не получается ?!?

Ошибку выдает !??
или не те данные вставляет ?!
...
Рейтинг: 0 / 0
SELECT,FoxPro
    #34126469
нач
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maltsev_MaxЕА указать, что конкретно не получается ?!?

Ошибку выдает !??
или не те данные вставляет ?!

browse ничего не показывает-хотя должен
...
Рейтинг: 0 / 0
SELECT,FoxPro
    #34126488
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maltsev_MaxЕ если ты Maltsev Max , то отзовись. Я тебя искал.
...
Рейтинг: 0 / 0
SELECT,FoxPro
    #34126576
нач
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир СА Maltsev_MaxЕ если ты Maltsev Max , то отзовись. Я тебя искал.

а помочь?
...
Рейтинг: 0 / 0
SELECT,FoxPro
    #34126734
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нача помочь?Я извиняюсь, но вопросы надо раскрывать. Чем больше ты расскажешь о проблеме, тем легче и большее количество человек присоединяются к ее решению. К примеру:
начесть 2 таблицы-mlcen.dbf и mlabel.dbf
как написать чтобы в 1-ую таблицу записывались все поля второй таблицы если нет такой записи в первой ключевые поля в таблицах-grup,nnumЗдесь не указаны перечень полей в таблицах, их рамерности. Как работать?
Во-вторых. В предыдущем топике ты говорил о том, что таблицу взятую с сервера вроде как не редактируют. Поэтому я и предлагал строить временный курсор. М.б. этот топик и не относиться к предыдущему. Поэтому я незнаю как представлять твою идеологию, твой вопрос. Вместе или раздельно.
...
Рейтинг: 0 / 0
SELECT,FoxPro
    #34126742
нач Maltsev_MaxЕА указать, что конкретно не получается ?!?

Ошибку выдает !??
или не те данные вставляет ?!

browse ничего не показывает-хотя должен

- Джон, приборы!
- 80!
- Чего "80"?
- А чего "приборы"?

browse какой таблицы? и почему должен показывать?
Почему все надо "клещами вытаскивать"?
...
Рейтинг: 0 / 0
SELECT,FoxPro
    #34126795
нач
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Станислав С нач Maltsev_MaxЕА указать, что конкретно не получается ?!?

Ошибку выдает !??
или не те данные вставляет ?!

browse ничего не показывает-хотя должен

- Джон, приборы!
- 80!
- Чего "80"?
- А чего "приборы"?

browse какой таблицы? и почему должен показывать?
Почему все надо "клещами вытаскивать"?
простите, просто форумом пользуюсь недавно, еще не научился...
берем из первой таблицы-
select mlabel.grup,mlabel.nnum,mlabel.name,mlabel.ocena1,mlabel.ocena2,mlabel.ocena3,;
mlabel.ocena4,mlabel.marka from mlabel
все строки котрых нет в второй таблице mlcen
в второй таблице поля такие же
просто ситуация когда добавили запись в 1-ую таблицу, причем 2 случая
1.создали новую группу и номер в группе
2 добавили запись в существ группу (которая есть mlcen)
эти значения должны находиться и переписываться в mlcen
...
Рейтинг: 0 / 0
SELECT,FoxPro
    #34126801
нач
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир СА нача помочь?Я извиняюсь, но вопросы надо раскрывать. Чем больше ты расскажешь о проблеме, тем легче и большее количество человек присоединяются к ее решению. К примеру:
начесть 2 таблицы-mlcen.dbf и mlabel.dbf
как написать чтобы в 1-ую таблицу записывались все поля второй таблицы если нет такой записи в первой ключевые поля в таблицах-grup,nnumЗдесь не указаны перечень полей в таблицах, их рамерности. Как работать?
Во-вторых. В предыдущем топике ты говорил о том, что таблицу взятую с сервера вроде как не редактируют. Поэтому я и предлагал строить временный курсор. М.б. этот топик и не относиться к предыдущему. Поэтому я незнаю как представлять твою идеологию, твой вопрос. Вместе или раздельно.

вот, помогите пожалуйста очень надо...
...
Рейтинг: 0 / 0
SELECT,FoxPro
    #34126946
начпростите, просто форумом пользуюсь недавно, еще не научился...
берем из первой таблицы-
select mlabel.grup,mlabel.nnum,mlabel.name,mlabel.ocena1,mlabel.ocena2,mlabel.ocena3,;
mlabel.ocena4,mlabel.marka from mlabel
все строки котрых нет в второй таблице mlcen
в второй таблице поля такие же
просто ситуация когда добавили запись в 1-ую таблицу, причем 2 случая
1.создали новую группу и номер в группе
2 добавили запись в существ группу (которая есть mlcen)
эти значения должны находиться и переписываться в mlcen
Вы это хотели получить?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
* Среда разработки - VFP6
create table d:\temp\mlabel ;
(grup N( 2 ),nnum N2, name C( 5 ),ocena1 N( 2 ),;
ocena2 N( 2 ),ocena3 N( 2 ),ocena4 N( 2 ), Marka c( 2 ))

select * from mlabel into dbf d:\temp\mlcen

insert into mlabel values( 1 , 1 ,"assa", 1 , 2 , 3 , 4 ,"O")
insert into mlabel values( 1 , 2 ,"assa", 2 , 3 , 4 , 5 ,"O")
insert into mlabel values( 1 , 3 ,"assa", 3 , 4 , 5 , 6 ,"O")
insert into mlabel values( 1 , 4 ,"assa", 4 , 5 , 6 , 7 ,"O")
insert into mlcen values( 1 , 1 ,"assa", 1 , 2 , 3 , 4 ,"O")

* Это то, что я советовал ранее
select a.*, nvl(b.nnum, 0 ) as priznak ;
from mlabel a ;
left outer join mlcen b ;
on a.grup=b.grup and a.nnum=b.nnum ;
into cursor query nofilter having priznak= 0 

select query
go top

*Вместо этого цикла в VFP9 можно, я думаю, использовать
* insert into mlcen (<перечень полей>) ;
* select <перечень полей> from query where priznak= 0 

scan
insert into mlcen values(query.grup,query.nnum,query.name,;
                                 query.ocena1,query.ocena2,query.ocena3,;
                                 query.ocena4,query.marka)
endscan
...
Рейтинг: 0 / 0
SELECT,FoxPro
    #34127284
нач
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Станислав С начпростите, просто форумом пользуюсь недавно, еще не научился...
берем из первой таблицы-
select mlabel.grup,mlabel.nnum,mlabel.name,mlabel.ocena1,mlabel.ocena2,mlabel.ocena3,;
mlabel.ocena4,mlabel.marka from mlabel
все строки котрых нет в второй таблице mlcen
в второй таблице поля такие же
просто ситуация когда добавили запись в 1-ую таблицу, причем 2 случая
1.создали новую группу и номер в группе
2 добавили запись в существ группу (которая есть mlcen)
эти значения должны находиться и переписываться в mlcen
Вы это хотели получить?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
* Среда разработки - VFP6
create table d:\temp\mlabel ;
(grup N( 2 ),nnum N2, name C( 5 ),ocena1 N( 2 ),;
ocena2 N( 2 ),ocena3 N( 2 ),ocena4 N( 2 ), Marka c( 2 ))

а если группы разные?

select * from mlabel into dbf d:\temp\mlcen

insert into mlabel values( 1 , 1 ,"assa", 1 , 2 , 3 , 4 ,"O")
insert into mlabel values( 1 , 2 ,"assa", 2 , 3 , 4 , 5 ,"O")
insert into mlabel values( 1 , 3 ,"assa", 3 , 4 , 5 , 6 ,"O")
insert into mlabel values( 1 , 4 ,"assa", 4 , 5 , 6 , 7 ,"O")
insert into mlcen values( 1 , 1 ,"assa", 1 , 2 , 3 , 4 ,"O")

* Это то, что я советовал ранее
select a.*, nvl(b.nnum, 0 ) as priznak ;
from mlabel a ;
left outer join mlcen b ;
on a.grup=b.grup and a.nnum=b.nnum ;
into cursor query nofilter having priznak= 0 

select query
go top

*Вместо этого цикла в VFP9 можно, я думаю, использовать
* insert into mlcen (<перечень полей>) ;
* select <перечень полей> from query where priznak= 0 

scan
insert into mlcen values(query.grup,query.nnum,query.name,;
                                 query.ocena1,query.ocena2,query.ocena3,;
                                 query.ocena4,query.marka)
endscan
...
Рейтинг: 0 / 0
SELECT,FoxPro
    #34127306
Maltsev_MaxE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир СА Maltsev_MaxЕ если ты Maltsev Max , то отзовись. Я тебя искал.

В связи с производственной необходимостью, пришлось поменять Фоксу на Делфи.
Поэтому с форума пропал. + Пароль забыл :-))

Пиши на мыло, если помнишь ...
...
Рейтинг: 0 / 0
SELECT,FoxPro
    #34127355
нач
а если группы разные?

А что, перекопировать, изменить в тексте:
Код: plaintext
1.
2.
3.
4.
5.
insert into mlabel values( 1 , 1 ,"assa", 1 , 2 , 3 , 4 ,"O")
insert into mlabel values( 1 , 2 ,"assa", 2 , 3 , 4 , 5 ,"O")
insert into mlabel values( 1 , 3 ,"assa", 3 , 4 , 5 , 6 ,"O")
insert into mlabel values( 1 , 4 ,"assa", 4 , 5 , 6 , 7 ,"O")
insert into mlcen values( 1 , 1 ,"assa", 1 , 2 , 3 , 4 ,"O")
на
Код: plaintext
1.
2.
3.
4.
5.
insert into mlabel values( 2 , 1 ,"assa", 1 , 2 , 3 , 4 ,"O")
insert into mlabel values( 2 , 2 ,"assa", 2 , 3 , 4 , 5 ,"O")
insert into mlabel values( 2 , 3 ,"assa", 3 , 4 , 5 , 6 ,"O")
insert into mlabel values( 1 , 4 ,"assa", 4 , 5 , 6 , 7 ,"O")
insert into mlcen values( 1 , 1 ,"assa", 1 , 2 , 3 , 4 ,"O")
и запустить религия не позволяет?
Как дети маленькие, честное слово...
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / SELECT,FoxPro
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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