On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение



Пост N: 228
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 06.04.15 10:39. Заголовок: Как организовать объединение двух таблиц для просмотра


Имеется 2 таблицы (.DBF) . Обе имеют ключевое поле 'TEMP' C:20 . Остальные поля - различаются .

Задача - организовать просмотр этих таблиц как-бы в одной .

Поиск и сортировка на экране должна происходить как-будто обе эти таблицы объединены в один файл ......

Таблицы - SHARED и находятся на сервере . Индексные файлы - .CDX



Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 12 [только новые]


администратор




Пост N: 4673
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.04.15 12:15. Заголовок: количество записей в..


количество записей в них одинаково ?

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 527
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 06.04.15 12:22. Заголовок: Softlog86 пишет: ..


Softlog86 пишет:

 цитата:
организовать просмотр этих таблиц как-бы в одной



три варианта на выбор
1 - временная база ( склейка физическая ) тут полный функционал возможен ( ПОИСК и СОРТИРОВКА ) Если записей не много - то это выход
2 - установить реляцию , по первой таблице бровс в который натыкать колонок из второй таблицы ( с соответствующим блоком выборки ) тут думаю ограничения на сортировку Slave таблицы
3 - Использовать любой RDD поддерживающий SQL ( запрос в одну строчку ). тут полный функционал возможен ( ПОИСК и СОРТИРОВКА )

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 442
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 06.04.15 12:24. Заголовок: SET RELATION TO tabl..


SET RELATION TO table1->temp INTO table2

Далее Browse/DBEDIT с полями:

table1->p1, table1->p2, table2->s1, table2->s2 ...



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 229
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 06.04.15 15:11. Заголовок: Мне нужно чтоб данны..


Мне нужно чтоб данные из поля TEMP обоих бах были объединены в один список и этот список индексирован UPPER(TEMP) .....


Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 534
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 06.04.15 15:23. Заголовок: так что из Softlog8..


так что из

Softlog86 пишет:

 цитата:
Задача - организовать просмотр этих таблиц как-бы в одной .


или

 цитата:
чтоб данные из поля TEMP обоих бах были объединены в один список



если второе - то во временную базу

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 230
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 06.04.15 15:54. Заголовок: Данные из этого стро..


Данные из этого строкового поля 'объединить' только для просмотра на экране ...... Но сортировано по UPPER(TEMP) ....
Видимо кроме перелива во временную базу никак ....


Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 535
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 06.04.15 16:00. Заголовок: Softlog86 пишет: Ви..


Softlog86 пишет:

 цитата:
Видимо кроме перелива во временную базу никак ....


можно в массив, записей то сколько ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 163
Зарегистрирован: 19.05.05
ссылка на сообщение  Отправлено: 06.04.15 16:51. Заголовок: Sergy пишет: SET RE..


Sergy пишет:

 цитата:
SET RELATION TO table1->temp INTO table2



Если первая база открыта с индексом, данные ведь будут отсортиртиваны по полю ТЕМР,
или я чего-то не понял, нужна еще какая-то дополнительная сортировка?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 551
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.04.15 18:18. Заголовок: Softlog86 Попробуйт..


Softlog86
Попробуйте так:
dbCreate('temp0', ({'TEMP', 'C', ..., 0}})
use temp0 alias TMP0
append from fileTemp1
append from fileTemp2
index on upper(TEMP) to temp0 UNIQUE
go top
use fileTemp1 alias TMP1
use fileTemp2 alias TMP2
sele TMP0
set relation to TEMP into TMP1
set relation to TEMP into TMP2
go top
do while ! eof()
? TEMP, TMP1->FieldName, TMP2->FieldName, ...
skip
enddo

// если надо др. сортировки индексы, делайте локально
index on TMP1->FieldName to tmp0_1
index on TMP2->FieldName to tmp0_2


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 552
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.04.15 18:41. Заголовок: PS. если схема подхо..


PS. если схема подходит, то правильнее отрабатывать
? TEMP, iif(TMP1->(found()), TMP1->FieldName, ""), iif(TMP2->(found()), TMP2->FieldName, "")

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 129
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 06.04.15 18:45. Заголовок: Вопрос к SergKis



index on upper(TEMP) to temp0 UNIQUE

Это же не гарантирует отображение обеих из двух записей ,
если ключ TEMP есть в обоих таблицах.
Будет показан набор полей только одной из таблиц и пустая запись из другой, разве нет ?

При совпадении ключа нужен не append , а replace

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 553
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.04.15 18:59. Заголовок: petr707 файл temp0 ..


petr707
файл temp0 проиндексирован UNIQUE, т.е. мы имеем одну запись (физически 2-е) и
sele TMP0
set relation to TEMP into TMP1
set relation to TEMP into TMP2
связывают ОДНУ запись temp0 с двумя разными таблицами (на сервере) по полю TEMP, т.е.
нам доступны как поля TMP1, так и поля TMP2, при условии found() == .T. для каждой из таблиц.

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 57
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет