Я делаю некоторые работы с клиентом в своем datamart по продажам, добавляя новое соединение с их ERP. Клиент сохранил старую базу данных («888») только для производства и создал новую базу данных «999» для продаж. Вся история остается в 888 году до 31 декабря, а новые продажи - в 999 году с 1 января 2016 года.Сохраненная процедура для слияния таблиц
Теперь у меня есть все таблицы и представления SQL Server, настроенные для опроса ERP для 888 и 999 с использованием новых таблиц и представлений в качестве реплик того, что у нас было ранее всего за 888. Теперь я хочу объединение 888 и 999, поэтому у нас есть один набор данных.
Мне очень удобно создавать таблицы для таблиц fact
, так как не должно быть дубликатов записей, однако хотелось бы, чтобы некоторые рекомендации по тусклым таблицам.
Клиенты и продукты были скопированы из 888 в 999 в ERP, так что я абсолютно будет есть дубликаты, но я только хочу иметь одну версию из 999. Тем не менее, говорят, что клиент будет удален из 999, я все еще будет иметь историю с 888, поэтому ее необходимо включить.
Я думаю, что я не могу на самом деле сделать объединение (из-за дубликатов), скорее я думаю, что мне нужно создать какую-то процедуру, которая вставляет все записи из таблицы 999, а затем обрабатывает 888 против этого, добавив записи, где они не существуют в цели.
Моя проблема в том, что я действительно не знаю, как написать такую хранимую процедуру. Если я думаю о размере Customer
в качестве примера, первичный ключ равен [Order_Debtor]
, а пример описательного столбца - [Order_Debtor_Description]
.
То, что я ищу, это руководство по написанию кода, который будет делать вставку из 999.customer
в merged.customer
, а затем проверку и вставку из 888.customer
в merged.customer
, когда он не существует в merged.customer
.
Привет и добро пожаловать в SO. Пожалуйста, добавьте существенные части вашего кода в качестве доказательства того, что вы сами что-то пробовали. Прочитайте [как спросить] (http://stackoverflow.com/help/how-to-ask) и [mcve] (http://stackoverflow.com/help/mcve) для получения лучшего полученного вопроса. – davejal
Привет #davejal, я не знаю, как это сделать, поэтому не пытались вытащить код вместе. Я знаю, что мне нужно, но не как это сделать! Имеет ли это смысл? –
Да, это имеет смысл, но мы не работаем бесплатно и не предоставим вам полное решение «из головы», попробуем что-нибудь и вернемся к тому, что вы пробовали, и где вы застреваете, а затем помогут вам наверняка. – davejal