Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Объединение набора таблиц с вычетом дублей (и не только)  [new]
VladMP
Member

Откуда:
Сообщений: 5
Доброго времени суток всем. Вобщем сейчас попробую описать суть задачи.
Есть данные в виде набора таблиц следующей структуры:

DATE_MC_REGC_DISTC_FULLIDVBACCOUNTRDIDOPERZN
11.03.20160222022212345625110022000625123.6
11.03.2016022202221234562511001200061431
11.03.20160222022212345650110024000718255.15
11.03.201602220222123456351200220005143.22
11.03.2016022202221234562513002200061711.7


Таких таблиц много (каждый день приходит по 1 в файле *.dbf)
Я их посредством php (уже как умею) импортирую в БД Oracle, каждую в новую таблицу (к примеру, tbl03112016).
Суть задачи состоит в том, что надо их все (можно по одной, можно все сразу) объеденить в одну таблицу (к примеру, tblfull) по следующему алгоритму:
Добваить в tblfull из tbl03112016 те записи, которых (полное соответствие всех полей кроме DATE_M) нет в итоговой таблице и заменить в итоговой таблице записи, в которых отличается отлько значение поля ZN с определенными IDOPER, к примеру, IDOPER IN ('10','22','36')

Грубо говоря, в таблицах хранятся "лицевые счета" "клиентов" по состоянию на определеный день - DATE_M - дата формирования dbf-файла. В IDOPER - вид(значение) операции для той или иной суммы(ZN), но конкретно в некоторых IDOPER записана сумма с начала года, тоесть для конкретныx нескольких IDOPER ('10','22','36') значение ZN при совпадающих остальных полях будет меняться с увеличением DATE_M, соответственно старый итог (сальдо) нужно заменить новым, при этом промежуточные операции (остальные IDOPER) надо оставить неизменными, дабы по DATE_M можно было вычислить дату операции.
18 мар 16, 17:49    [18949942]     Ответить | Цитировать Сообщить модератору
 Re: Объединение набора таблиц с вычетом дублей (и не только)  [new]
форум работа
Guest
VladMP
Суть задачи состоит
И сколько платишь?
18 мар 16, 18:39    [18950205]     Ответить | Цитировать Сообщить модератору
 Re: Объединение набора таблиц с вычетом дублей (и не только)  [new]
MazoHist
Guest
Ну так заливай во временную (необязательно temporary) таблицу а потом переноси в целевую по нужным правилам.
18 мар 16, 18:58    [18950310]     Ответить | Цитировать Сообщить модератору
 Re: Объединение набора таблиц с вычетом дублей (и не только)  [new]
Добрый Э - Эх
Guest
VladMP,

dbf - настоящий хрен-пойми-что-за-файл с хитрозагнутой внутренней структурой или банальный текстовичок с [позиционной | разделительной] организацией хранения данных? Если текстовик, то логичнее грузить посредством родного Sqlloader-а

по поводу слияния данных в единую таблицу, есть подозрение, что нужно читать про MERGE, хотя по сумбурному описанию задачи это не совсем очевидно.
18 мар 16, 19:18    [18950426]     Ответить | Цитировать Сообщить модератору
 Re: Объединение набора таблиц с вычетом дублей (и не только)  [new]
VladMP
Member

Откуда:
Сообщений: 5
2all
dbf - обычный dBase III файл.
Таблицы уже все перелиты в Oracle. Все поля типа Number, кроме первого, оно - DATE
Мне надо помочь с запросом типа INSERT/UPDATE, а то пока не могу сообразить, как это правильно реализировать.
Буду признателен за помощь, а то в SQL я не силен.
20 мар 16, 17:37    [18955740]     Ответить | Цитировать Сообщить модератору
 Re: Объединение набора таблиц с вычетом дублей (и не только)  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10051
MERGE

SY.
20 мар 16, 17:40    [18955745]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить