powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Выборка из FB
13 сообщений из 13, страница 1 из 1
Выборка из FB
    #34330594
RIGOR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Если кто сталкивался, подскажите решение проблем.
1.Делается выборка из FB (жар-птица), выбирается некоторое количество записей(порядка 300000). На следующий день при выгрузке записей становится больше, работа с данными не ведется, запросы не меняются, вирусов нет. Периодичность изменения кол-ва записей 1000-2000. Из-за чего?
2.В базе FB есть запись, ее видно, но выгрузка ее не происходит. Из-за чего?
Все выгружается в VFP9
...
Рейтинг: 0 / 0
Выборка из FB
    #34330646
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Текст запроса в студию.
...
Рейтинг: 0 / 0
Выборка из FB
    #34330677
RIGOR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Высылаю файл
...
Рейтинг: 0 / 0
Выборка из FB
    #34330743
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ответьте, какие нижеперечисленные таблицы не меняются

авторT01_PERSONS
H02_PERSADDRESSES
H01_PERSDOCS
H03_PERSPOLICIES
T03_CONTRACTS
T02_ORGS
T04_POLICIES
...
Рейтинг: 0 / 0
Выборка из FB
    #34330887
RIGOR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблицы Т_01,02,03 - данные адекватные на данный момент.
Таблицы Н_01,02,03 - данные об историях изменнений в таблицах Т_.
Выгрузка производилась в выходные дни, изменений не вносилось.
Данные, которые я вижу в FB и не могу выгрузить в Фокс, на момент выгрузки не редактируются, не просматриваются
...
Рейтинг: 0 / 0
Выборка из FB
    #34332199
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда рассказывай по порядку, что делаешь, например

- вчера выбрал из БД, получил 300 тыс записей
- в таблицах было
T01_PERSONS = 1000 записей
H02_PERSADDRESSES = ....
H01_PERSDOCS = ....
H03_PERSPOLICIES
T03_CONTRACTS
T02_ORGS
T04_POLICIES

- сегодня делаю тот же самый запрос, получаю 290 тыс записей
- в таблицах записей ......

PS Обрати внимание, что не указана таблица T04_POLICIES как статическая.

PSS Повесь триггеры аудита на приведенные таблицы (на insert/delete), тогда можно будет посмотреть действительно не изменяются таблицы или всё таки что-то в них записывается и удаляется
...
Рейтинг: 0 / 0
Выборка из FB
    #34332386
RIGOR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сейчас нестоль актуален вопрос об изменении количества записей, кстати их количество увеличивается, а не уменьшается. Больше интересует вопрос, почему при наличии записи в базе, даже если убрать истории изменений, и брать только актуальные данные, не все АКТУАЛЬНЫЕ записи выгружаются, хотя после выгрузки я невыгруженные записи в FB вижу, и вносились они давно (более 3 суток)
...
Рейтинг: 0 / 0
Выборка из FB
    #34332430
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RIGORСейчас нестоль актуален вопрос об изменении количества записей, кстати их количество увеличивается, а не уменьшается. Больше интересует вопрос, почему при наличии записи в базе, даже если убрать истории изменений, и брать только актуальные данные, не все АКТУАЛЬНЫЕ записи выгружаются, хотя после выгрузки я невыгруженные записи в FB вижу, и вносились они давно (более 3 суток)

Значит вопрос про разное кол-во записей снят.

Теперь, что подразумевается под понятием - "актуальные записи" чем они отличаются то других записей, как в select-e оставляются только актуальные записи, каким оператором.

PS а лучше бы привести контрольный пример на Фоксе, и показать вот в Фоксе я получаю такую вот выборку, а при всех прочих равных условиях FB дает выборку отличающуюсю от Фоксовской тем-то и тем-то.
...
Рейтинг: 0 / 0
Выборка из FB
    #34332738
RIGOR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Актуальные записи - записи, содержащие данные по персоналиям и их документам, которые являются действительными и действующими на данный момент, т.е. при изменении ФИО, номера или серии документа, адреса, мы должны и видим данные актульаные на текущее время (таблицы Т_). Все изменения хранятся в таблицах Н_, инвал_дат - дата, когда были внесены измения.
Пример выглядит так: выбираю из FB некоторое кол-во записей (эти записи являются эталоном для последующих проверок). Выгружаю их в DBF (несколько SELECT-ов), которые идут после токого, кот орый я приводил. Начинаю сравнивать их по контрольному полю с внешними данными (их приносят в DBF). Сравнение показывает - такой записи среди выбранных нет. Далее через поисковую форму, сделанную в FB, ищу по контрольному полю и вижу эту запись. Проверяю наличие записи в RemoView - там этой записи нет, хотя должно выбираться ВООБЩЕ ВСЕ и актуальные и неактульные данные.
...
Рейтинг: 0 / 0
Выборка из FB
    #34332811
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RIGOR.... Сравнение показывает - такой записи среди выбранных нет. Далее через поисковую форму, сделанную в FB, ищу по контрольному полю и вижу эту запись. Проверяю наличие записи в RemoView - там этой записи нет, хотя должно выбираться ВООБЩЕ ВСЕ и актуальные и неактульные данные.


Переделываем запрос, теперь все записи есть и те которые есть в БД, но раньше не предьявлялись?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
SELECT T01_persons.PERS_LN, T01_persons.PERS_FN, T01_persons.PERS_MN,;
  T01_persons.PERS_BIRTH, H03_perspolicies.CONTRACT_ID,;
  H03_perspolicies.END_DATE, H03_perspolicies.INVAL_DATE,;
  T03_contracts.CONTR_STARTDATE, T03_contracts.CONTR_ENDDATE,;
  T02_orgs.RNUMBER, T02_orgs.RNUMBER15, T04_policies.POLICY_SERIES,;
  T04_policies.POLICY_NUMBER, H02_persaddresses.INVAL_DATE,;
  T02_orgs.INVAL_DATE, H01_persdocs.INVAL_DATE;
 FROM ;
     T01_PERSONS T01_persons ;
    left JOIN H02_PERSADDRESSES H02_persaddresses ;
   ON  T01_persons.ID_PERSON = H02_persaddresses.PERSON_ID ;
    left JOIN H01_PERSDOCS H01_persdocs ;
   ON  T01_persons.ID_PERSON = H01_persdocs.PERSON_ID ;
    left JOIN H03_PERSPOLICIES H03_perspolicies ;
   ON  T01_persons.ID_PERSON = H03_perspolicies.PERSON_ID ;
    left JOIN T03_CONTRACTS T03_contracts ;
   ON  H03_perspolicies.CONTRACT_ID = T03_contracts.ID_CONTRACT ;
    left JOIN T02_ORGS T02_orgs ;
   ON  T03_contracts.ORG_ID = T02_orgs.ID_ORG ;
    left JOIN T04_POLICIES T04_policies ;
   ON  H03_perspolicies.POLICY_ID = T04_policies.ID_POLICY;
 ORDER BY H03_perspolicies.END_DATE
...
Рейтинг: 0 / 0
Выборка из FB
    #34332944
RIGOR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все заработало. ОГРОМНОЕ СПАСИБО.
Объясните, пожайлуста, а в чем принципиальная разница в данной ситуации между INNER и LEFT JOIN?
...
Рейтинг: 0 / 0
Выборка из FB
    #34333031
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
CLEAR

CREATE CURSOR cMaster (f1 i, f2 c( 20 ))

CREATE CURSOR cdetails (f1 i, f2 c( 20 ))

INSERT INTO cMaster VALUES ( 1 , 'First record Master')
INSERT INTO cMaster VALUES ( 2 , 'Second record Master')

INSERT INTO cDetails VALUES ( 1 , 'First record Details')

SELECT * FROM cMaster cm INNER JOIN cDetails cd ON cm.f1 = cd.f1 INTO CURSOR cur
? 'Inner join'
LIST  
? 'Left join'
SELECT * FROM cMaster cm Left JOIN cDetails cd ON cm.f1 = cd.f1 INTO CURSOR cur
LIST 

Вот смотри есть две таблички (Мастер и Детали), в таблице Мастер две записи, в таблице Детали одна запись удовлетворяющая только первой записи таблицы Мастер.

При Inner Join в результирующую выборку попадут ТОЛЬКО те записи у которых точно совпадает условие обьединения.

При Left Join в выборку попадут ВСЕ записи из таблицы Мастер, те той таблиц которая была упомянута первой (слева) и только те записи из Деталей у которых есть точное совпадение по условию обьединения.

Например, если изменить порядок следования таблиц при Left Join, то получим другой результат

Код: plaintext
1.
SELECT * FROM cDetails cd Left JOIN cMaster cm ON cm.f1 = cd.f1 INTO CURSOR cur
LIST 
...
Рейтинг: 0 / 0
Выборка из FB
    #34333063
RIGOR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все понял. Еще раз спасибо
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Выборка из FB
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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