Форум: "Прочее";
Текущий архив: 2007.05.27;
Скачать: [xml.tar.bz2];
ВнизКак проверить данные 2 аксесовских таблиц? Найти похожие ветки
← →
CCili (2007-04-27 12:46) [0]Проблема такая! Есть 2 человека, которые записывают информацию по складу. Оба записывают информацию по поступлению и расходу. Необходимо автоматизировать проверку. Т.е надо сравнить 2 файла этих товарисчей и выявить отличия если такие есть. Каким образом лучше всего подойдти к решению такой задачи?
← →
Kerk © (2007-04-27 12:48) [1]
select * from table1
minus
select * from table2
?
← →
Sergey13 © (2007-04-27 12:55) [2]> Каким образом лучше всего подойдти к решению такой задачи?
Бежать от такой задачи надо без оглядки. Желательно в сторону ЛВС и SQL-серверов.
← →
Правильный Вася (2007-04-27 13:10) [3]
> Kerk © (27.04.07 12:48) [1]
а что, в акцессе есть минус для множеств?
← →
StriderMan © (2007-04-27 13:18) [4]outer join?
← →
Kerk © (2007-04-27 13:25) [5]> [3] Правильный Вася (27.04.07 13:10)
Не знаю. Предположил :)
← →
CCili (2007-04-27 13:31) [6]
> Желательно в сторону ЛВС и SQL-серверов.
Приходиться работать с тем, что есть. А есть 2 файла в Аксесе. :)
← →
Sergey13 © (2007-04-27 13:35) [7]> [6] CCili (27.04.07 13:31)
А что, даже сети нет?
← →
alien1769 © (2007-04-27 13:37) [8]
> выявить отличия
Растяжимое понятие. Уточните задачу.
← →
DrAndrey © (2007-04-27 13:41) [9]> Приходиться работать с тем, что есть. А есть 2 файла в Аксесе. :)
А таблиц в этих ф-х сколько? По одной? Справочники тоже наверное есть?
← →
CCili (2007-04-27 14:43) [10]Исходные условия:
1. 2 одинаковых Аксесовских файл, где 2 таблицы: поступления, расход и запрос, который выводит остатки.
2. локальной сети нет, т.к компы находятся в разных концах города
← →
Sergey13 © (2007-04-27 14:53) [11]> [10] CCili (27.04.07 14:43)
А что сравнить то надо?
← →
CCili (2007-04-27 15:00) [12]
> А что сравнить то надо?
Данные. В основном остатки не сходятся значит надо найти записи, которые есть у одного, но нет у другого юзера.
← →
Sergey13 © (2007-04-27 15:02) [13]> [12] CCili (27.04.07 15:00)
По какому критерию сравнивать то?
В одном файле
код 10 товар "Кофеты"
В другом
код 10 товар "Вафли"
← →
CCili (2007-04-27 15:07) [14]Код 10 сумма "25"
в другом
Код 10 сумма "35"
При этом код тоже хорошо бы проверить, т.к и тут тоже возможны, опечатки, ошибки и.т.д.
← →
Sergey13 © (2007-04-27 15:13) [15]> [14] CCili (27.04.07 15:07)
Кофеты 10 сумма "25"
в другом
Вафли 10 сумма "35"
Что сравнить то?
> При этом код тоже хорошо бы проверить
На что проверить то? На вшивость?
Ты определись сам с критериями и условиями, и самому может понятнее станет.
← →
zx © (2007-04-27 15:23) [16]элементарно! всё, что осталось не сходится! :-)
delete from table1
where id in (select id from table1, table2
where table1.pole1=table2.pole1
and table1.pole2=table2.pole2
and ...)
← →
CCili (2007-04-27 15:26) [17]Окей. Попытаюсь объяснить максимально подробно. На каждый заказ продукции автоматически определяется упаковочный номер. Опять же на каждый заказ выдается определенное количество сырья. Иногда сырье выдается на образцы или на иные нужды.
Каждый расход фиксируется в таблице. Ключевые поля:
Упаковочный номер и Фактически выдано.
У юзера в офисе, упаковочный номер определяется автоматически. А вот юзер на складе должен вбить его вручную. Оба юзера вбивают фактический расход вручную.
Проверка состоит в том, чтобы свериться юзеру из офиса и юзеру со склада. Сверить нужно фактическую сумму расхода для каждого заказа. Вопрос в том как осуществить такую проверку?
← →
boriskb © (2007-04-27 15:28) [18]Типичная задача.
Мы сделали все через.. нехорошо вообщем.
Переделывать ничего не хотим(не имем возможности)
А хотим что б все работало.
Помогите.
Таких 10 раз на дню в форуме.
← →
CCili (2007-04-27 15:31) [19]Т.е нужен SQL запрос? Я не силен в них. Не подскажите как его сделать для двух таблиц, где есть 2 одинаковых поля: упаковочный номер и фактически выдано. При этом упаковочный номер может присутствовать 2 раза, т.к на один и тот же продукт могут выдавать 2 разных типа сырья. К примеру:
Упак. номер Материал фактически выдано
1 ткань 1 15
2 ткань 2 25
2 ткань 3 22
....
← →
Sergey13 © (2007-04-27 15:32) [20]> [17] CCili (27.04.07 15:26)
И как это все работает?
Офис завел новый документ и выписал на него сырье. Он звонит кладовщику и диктует ему данные что-ли?
← →
CCili (2007-04-27 15:33) [21]
> Мы сделали все через.. нехорошо вообщем.
Да нет. Все работает нормально. Просто ко всему прочему хотелось бы просто еще делать проверку.
← →
CCili (2007-04-27 15:35) [22]
> И как это все работает?
> Офис завел новый документ и выписал на него сырье. Он звонит
> кладовщику и диктует ему данные что-ли?
Накладная уходит по почте. Кладовщик проверят почту, печатает накладную, заполняет графу фактически выдано, а потом забивает некоторые параметры накладной в свой аксесовский файл.
← →
Sergey13 © (2007-04-27 15:38) [23]> [19] CCili (27.04.07 15:31)
Нечто вроде
select kod, sum(kolichestbo)
from
(select kod, kolichestvo from table1
union all
select kod, -1*kolichestvo from table2)
group by kod
having sum(kolichestbo)>0
Должно (вроде) получится расхождение по кодам.
← →
Sergey13 © (2007-04-27 15:41) [24]> [22] CCili (27.04.07 15:35)
> Накладная уходит по почте.
По голубиной или электронной?
← →
CCili (2007-04-27 15:45) [25]
> По голубиной или электронной?
Голубь заболел... гриппует, наверное :). Поэтому пока электронной.
← →
CCili (2007-04-27 15:45) [26]За код спасибо. Попробую.
← →
Sergey13 © (2007-04-27 15:51) [27]> [25] CCili (27.04.07 15:45)
> Поэтому пока электронной.
Так зачем кладовщик руками что-то вводит? Неужели нельзя инфу из письма выцепить и вставить в БД?
← →
CCili (2007-04-27 16:01) [28]Ну, дело в том, что я любитель Делфи. Никогда не учился, поэтому программы, которые мы используем и технологии кустарные, но они работают и достаточно неплохо. По крайне мере относительно того, что было это переворот, хотя если учитывать, что все относительно, то конечно, можно было сделать и более профессионально и наворочено.
А как можно из Экселевского файла выцепить информацию? Кладовщик заносит данные через программу, поэтому фактически ему надо просто указать когда выдано, кому и на какой упаковочный номер.... а если номер можно прочитать из накладной, то ваще супер.
← →
Sergey13 © (2007-04-27 16:32) [29]> [28] CCili (27.04.07 16:01)
> А как можно из Экселевского файла выцепить информацию?
Вообще можно, только при чем тут эксель? Вроде про аксес было?
Офисная программа должна сформировать файлы для пересылки, складская их прочитать. В качестве формата файла - все что угодно с чем можешь работать - хоть текстовый файл.
← →
oldman © (2007-04-27 18:05) [30]
> boriskb © (27.04.07 15:28) [18]
> Типичная задача.
> Мы сделали все через.. нехорошо вообщем.
> Переделывать ничего не хотим(не имем возможности)
> А хотим что б все работало.
> Помогите.
>
> Таких 10 раз на дню в форуме.
Я, пожалуй, присоединюсь, прочитав всю ветку...
← →
sniknik © (2007-04-27 19:42) [31]> Типичная задача.
и стандартное решение - нанять программиста. все остальное от лукавого. имхо.
← →
isasa © (2007-04-27 20:49) [32]sniknik © (27.04.07 19:42) [31]
+ вспомнить, что Access поддерживает репликацию.
← →
MsGuns © (2007-04-27 22:18) [33]Типовая задача при мутации данных из "ручных" баз в "серверную".
Общий скелет решения - это создание "перевалочной" базы, куда последовательно записываются данные сначала из одной "ручной", БД, затем из другой, третьей и т.д. Затем записи (объекты) сверяются по некоторым признакам, типа приводятся к общему "знаменателю". Далее даются на контроль и правку "старшему оператору", после чего нормализуются и в этом уже виде заливаются в "нормальную" сиквельную БД.
Сразу скажу - репоикация здесь никаким боком не поможет, хотябы потому, что в "ручных" базах отсутствует поле "Код репликации", да и по типу, порядку следования, названию, размеру и т.д. поля таблиц (как, впрочем, и сами таблицы) могут отличаться
В любом случае задача непростая и совет [31] в этой ситуации едва ли не оптимальный
← →
MsGuns © (2007-04-27 22:20) [34]Пардон, вместо "мутации" следует читать "миграции"
Пишу вот, а под рукой "Остров д-ра Моро" Уэлсса ;)))
← →
isasa © (2007-04-27 23:14) [35]MsGuns © (27.04.07 22:18) [33]
Сразу скажу - репоикация здесь никаким боком не поможет, хотябы потому, что в "ручных" базах отсутствует поле "Код репликации", да и по типу, порядку следования, названию, размеру и т.д. поля таблиц (как, впрочем, и сами таблицы) могут отличаться
Ага, а чего мелочиться, можно пасадить десять "товарищей" и гнать данные. Да еще каждому свою структуру таблицы, чтобы потом задача стала совсем не тривиальной ...
Может сразу гнать в базовую структуру, но реплицируемую.
Кстати, а машины в сети? :) А то, меня гложет смутное сомнение, что процесс бесконечный...
← →
MsGuns © (2007-04-28 01:39) [36]Вся проблема в том, что десять "товарищей" к тому моменту, когда мне поставили такую задачу, уже "нагнали" несколько десятков тысяч записей, из которых процентов 5-10 пересекались.
Усугублялось еще тем, что эти же "десятеро" продолжали гнать и дальше. Программу я ставил им и на сервер переводил незаметно "по ходу пьесы".
Это было очень геморно, но все же выполнимо.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2007.05.27;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.052 c