На рисунке 1 показано текущее состояние ТАБЛИЦЫ A и ТАБЛИЦЫ B.
Текущая реализация заключается в извлечении новых идентификаторов MIds в таблицу Bи скопируйте SqlQuery из базового процесса, в случае нового рынка или существующего рынка.Для этого используется следующий запрос:
SELECT A.MId, B1.Loop, B1.Segment, B1.SqlQuery, B1.UseDefault
FROM TableB B1 WITH (NOLOCK)
INNER JOIN TableA A WITH (NOLOCK) ON B1.MId IN (100, 200)
AND B1.MId = A.BaseMarket
AND ISNULL(A.POCId, 0) > 0
LEFT JOIN TableB B2 WITH (NOLOCK) ON A.MId = B2.MId
WHERE B2.MId IS NULL
На рисунке 2 показаны обновленные данные в таблице A и требуемое состояние таблицы B. Требуемая реализация будет выглядеть следующим образом:
- Извлечьновые MIds для таблицы B и скопировать SqlQuery из базового процесса, если это новый рынок (XYZ Market - 2001, 2002)
- Если конфигурация рынка уже существует в таблице B (Market ABC - 1001 и 1002), затем скопируйте существующую конфигурацию SqlQuery.
Вот полный процесс для таблиц A и B. Базовые конфигурации (100 и 200) в обеих таблицах изначально были вставлены вручную, включая цикл и сегменты.
Введен новый рынок и создан новый MId в таблице A. Предположим, что для Market ABC это 1001 и 1002.
Соответствуетзаписи вставляются в таблицу B для каждого MId, и он копирует данные из базовой конфигурации в таблицу B. Вставленные записи (SqlId - 3 и 4)
SqlQuery столбец в таблице Bобновляется вручную из-за определенного бизнес-запроса.(SqlId - 3 и 4).Следовательно, другой запрос.
Market ABC обновляется во внешнем интерфейсе, что создает две новые записи в таблице A. (MId - 1003 и 1004).Кроме того, создается новый рынок XYZ (MId - 2001 и 2002).
Соответствующие записи, созданные в таблице B, должны ссылаться на базовую конфигурацию для рынка XYZ (SqlId - 7 и 8), посколькуновый рынок, но следует скопировать существующую конфигурацию для Market ABC (MId - 1001 и 1002), поскольку его конфигурация уже существует.
Я ищу предложения, если один запрос может реализовать этотребование с использованием заявления Case.Я буду признателен за вашу помощь!