Advertisement
albuh

Untitled

Oct 1st, 2023 (edited)
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 10.55 KB | None | 0 0
  1. --Основная масса номенклатуры
  2.  
  3. MERGE [DataWH].dbo.[t_Номенклатура] AS target USING
  4.   (SELECT en.[Ссылка] ,
  5.           en.[ПометкаУдаления] ,
  6.           en.[Родитель] ,
  7.           en.[Код] ,
  8.           en.[Наименование] ,
  9.           en.[Артикул] ,
  10.           ed.[ID_ЕдиницаИзмерения] ,
  11.           n.[Комментарий] ,
  12.           en.[НаименованиеПолное] ,
  13.           vn.[ID_ВидНоменклатуры] ,
  14.           en.[ДополнительноеОписаниеНоменклатур] ,
  15.           nkt.[ID_КатегорияТовара] ,
  16.           nf.[ID_Фасон] ,
  17.           nt.[ID_Ткань] ,
  18.           nn.[ID_Наполнитель] ,
  19.           nm.[ID_Мех] ,
  20.           ns.[ID_Cезон] ,
  21.           np.[ID_Поставщик] ,
  22.           ng.[ID_ГруппаТовара] ,
  23.           ntt.[ID_ТипТовара] ,
  24.           nttt.[ID_Стиль] ,
  25.           --nott.[ID_ОтборТовара] --,nottt.[ID_ОтборТовара2021] ,
  26.           isnull(rol.[ID_SelectionLast], 12) ,
  27.           nvtc.[ID_ВыборТЦ] ,
  28.           nir.[ID_ИсторияРаздачи] ,
  29.           na.[ID_Акция] ,
  30.           isnull(npp.[ID_Перекосы], 2) ,
  31.           pol.[ID_Пол] ,
  32.           isnull(hn.[ID_XNomen], 1) AS [ID_XNomen]
  33.    FROM [DataWH].[stg].[t_Номенклатура] en
  34.    LEFT OUTER JOIN [DataWH].[dbo].[t_Ном_ВидНоменклатуры] vn ON vn.ВидНоменклатуры = isnull(en.ВидНоменклатуры, 'Не указано')
  35.    LEFT OUTER JOIN [DataWH].[dbo].[t_Ном_ЕдиницаИзмерения] ed ON ed.ЕдиницаИзмерения = isnull(en.БазоваяЕдиницаИзмерения, 'Не указано')
  36.    LEFT OUTER JOIN [DataWH].[stg].[t_Excel_Номенклатура] n ON n.Артикул = en.[Артикул]
  37.    LEFT OUTER JOIN [DataWH].[dbo].[t_Ном_КатегорияТовара] nkt ON nkt.[Категория товара] = isnull(n.[Категория товара], 'Не указано')
  38.    LEFT OUTER JOIN [DataWH].[dbo].[t_Ном_Фасон] nf ON nf.[Фасон/силуэт] = isnull(n.[Фасон/силуэт], 'Не указано')
  39.    LEFT OUTER JOIN [DataWH].[dbo].[t_Ном_Ткань] nt ON nt.Ткань = isnull(n.Ткань, 'Не указано')
  40.    LEFT OUTER JOIN [DataWH].[dbo].[t_Ном_Наполнитель] nn ON nn.Наполнитель = isnull(n.Наполнитель, 'Не указано')
  41.    LEFT OUTER JOIN [DataWH].[dbo].[t_Ном_Мех] nm ON nm.Мех = isnull(n.Мех, 'Не указано')
  42.    LEFT OUTER JOIN [DataWH].[dbo].[t_Ном_Сезон] ns ON ns.[Cезон (год)] = isnull(n.[Cезон (год)], 'Не указано')
  43.    AND ns.[Cезон (коллекция)] = isnull(n.[Cезон (коллекция)], 'Не указано')
  44.    LEFT OUTER JOIN [DataWH].[dbo].[t_Ном_Поставщик] np ON np.Поставщик = isnull(n.Поставщик, 'Не указано')
  45.    LEFT OUTER JOIN [DataWH].[dbo].[t_Ном_ГруппаТовара] ng ON ng.[Группа товара] = isnull(n.[Группа товара], 'Не указано')
  46.    LEFT OUTER JOIN [DataWH].[dbo].[t_Ном_ТипТовара] ntt ON ntt.[Тип товара] = isnull(n.[Тип товара], 'Не указано')
  47.    LEFT OUTER JOIN [DataWH].[dbo].[t_Ном_Стиль] nttt ON nttt.[Стиль] = isnull(n.[Стиль], 'Не указано')
  48.    LEFT OUTER JOIN [DataWH].[dbo].[t_Ном_ОтборТовара] nott ON nott.[Отбор товара] = isnull(n.[Отбор товара], 'Не указано')
  49.    AND isnull(n.[Отбор товара (легкий)], 'Не указано') = nott.[Отбор товара (легкий)] --left outer join [DataWH].[dbo].[t_Ном_ОтборТовара2021] nottt on nottt.[Отбор товара 2021] = isnull(n.[Отбор Товара 2021], 'Не указано')
  50.    LEFT OUTER JOIN [DataWH].[dbo].[t_ОтборТовараLast] rol ON en.[Артикул] = rol.[Артикул]
  51.    LEFT OUTER JOIN [DataWH].[dbo].[t_Ном_ВыборТЦ] nvtc ON nvtc.[Выбор ТЦ] = isnull(n.[Выбор ТЦ], 'Не указано')
  52.    LEFT OUTER JOIN [DataWH].[dbo].[t_Ном_ИсторияРаздачи] nir ON nir.[История раздачи] = isnull(n.[история раздачи], 'Не указано')
  53.    LEFT OUTER JOIN [DataWH].[dbo].[t_Ном_Акция] na ON na.Акция = isnull(n.акция, 'Не указано')
  54.    LEFT OUTER JOIN [DataWH].[dbo].[t_Перекосы] npp ON npp.Артикул = en.[Артикул]
  55.    LEFT OUTER JOIN [DataWH].[dbo].[t_Ном_Пол] pol ON pol.Пол = isnull(n.Пол, 'Не указано')
  56.    LEFT OUTER JOIN [DataWH].[dbo].[t_Номенклатура] rn ON en.[Родитель] = rn.[Ссылка]
  57.    LEFT OUTER JOIN [DataWH].[dbo].[t_ХрНоменклатуры] hn ON en.Ссылка = hn.Владелец
  58.    WHERE ЭтоГруппа = 1) AS SOURCE ([Ссылка],
  59.                                    [ПометкаУдаления],
  60.                                    [Родитель],
  61.                                    [Код],
  62.                                    [Наименование],
  63.                                    [Артикул],
  64.                                    [ID_ЕдиницаИзмерения],
  65.                                    [Комментарий],
  66.                                    [НаименованиеПолное],
  67.                                    [ID_ВидНоменклатуры],
  68.                                    [ДополнительноеОписаниеНоменклатур],
  69.                                    [ID_КатегорияТовара],
  70.                                    [ID_Фасон],
  71.                                    [ID_Ткань],
  72.                                    [ID_Наполнитель],
  73.                                    [ID_Мех],
  74.                                    [ID_Cезон],
  75.                                    [ID_Поставщик],
  76.                                    [ID_ГруппаТовара],
  77.                                    [ID_ТипТовара],
  78.                                    [ID_Стиль],
  79.                                    [ID_ОтборТовара],
  80.                                    [ID_SelectionLast],
  81.                                    [ID_ВыборТЦ],
  82.                                    [ID_ИсторияРаздачи],
  83.                                    [ID_Акция],
  84.                                    [ID_Перекосы],
  85.                                    [ID_Пол],
  86.                                    [ID_XNomen]) ON (target.[Ссылка] = source.[Ссылка]
  87.                                                     AND target.[ID_XNomen]= source.[ID_XNomen]) WHEN matched THEN
  88. UPDATE
  89. SET target.[Код] = source.[Код],
  90.     target.[Наименование] = source.[Наименование],
  91.     target.[Артикул] = source.[Артикул],
  92.     target.[ID_ЕдиницаИзмерения] = source.[ID_ЕдиницаИзмерения],
  93.     target.[Комментарий] = source.[Комментарий],
  94.     target.[НаименованиеПолное] = source.[НаименованиеПолное],
  95.     target.[ID_ВидНоменклатуры] = source.[ID_ВидНоменклатуры],
  96.     target.[ДополнительноеОписаниеНоменклатур] = source.[ДополнительноеОписаниеНоменклатур],
  97.     target.[ID_КатегорияТовара] = source.[ID_КатегорияТовара],
  98.     target.[ID_Фасон] = source.[ID_Фасон],
  99.     target.[ID_Ткань] = source.[ID_Ткань],
  100.     target.[ID_Наполнитель] = source.[ID_Наполнитель],
  101.     target.[ID_Мех] = source.[ID_Мех],
  102.     target.[ID_Cезон] = source.[ID_Cезон],
  103.     target.[ID_Поставщик] = source.[ID_Поставщик],
  104.     target.[ID_ГруппаТовара] = source.[ID_ГруппаТовара],
  105.     target.[ID_ТипТовара] = source.[ID_ТипТовара],
  106.     target.[ID_ОтборТовара] = source.[ID_ОтборТовара],
  107.     target.[ID_Стиль] = source.[ID_Стиль],
  108.     target.[ID_SelectionLast] = source.[ID_SelectionLast],
  109.     target.[ID_ВыборТЦ] = source.[ID_ВыборТЦ],
  110.     target.[ID_ИсторияРаздачи] = source.[ID_ИсторияРаздачи],
  111.     target.[ID_Акция] = source.[ID_Акция],
  112.     target.[ID_Перекосы] = source.[ID_Перекосы],
  113.     target.[ID_Пол] = source.[ID_Пол] WHEN NOT matched BY target THEN
  114. INSERT ([Ссылка],
  115.         [ПометкаУдаления],
  116.         [Родитель],
  117.         [Код],
  118.         [Наименование],
  119.         [Артикул],
  120.         [ID_ЕдиницаИзмерения],
  121.         [Комментарий],
  122.         [НаименованиеПолное],
  123.         [ID_ВидНоменклатуры],
  124.         [ДополнительноеОписаниеНоменклатур],
  125.         [ID_КатегорияТовара],
  126.         [ID_Фасон],
  127.         [ID_Ткань],
  128.         [ID_Наполнитель],
  129.         [ID_Мех],
  130.         [ID_Cезон],
  131.         [ID_Поставщик],
  132.         [ID_ГруппаТовара],
  133.         [ID_ТипТовара],
  134.         [ID_Стиль],
  135.         [ID_ОтборТовара],
  136.         [ID_SelectionLast],
  137.         [ID_ВыборТЦ],
  138.         [ID_ИсторияРаздачи],
  139.         [ID_Акция],
  140.         [ID_Перекосы],
  141.         [ID_Пол],
  142.         [ID_XNomen])
  143. VALUES (source.[Ссылка],source.[ПометкаУдаления],source.[Родитель],source.[Код],source.[Наименование],source.[Артикул],source.[ID_ЕдиницаИзмерения],source.[Комментарий],source.[НаименованиеПолное], source.[ID_ВидНоменклатуры],source.[ДополнительноеОписаниеНоменклатур], source.[ID_КатегорияТовара],source.[ID_Фасон],source.[ID_Ткань],source.[ID_Наполнитель],source.[ID_Мех],source.[ID_Cезон], source.[ID_Поставщик],source.[ID_ГруппаТовара],source.[ID_ТипТовара],source.[ID_ОтборТовара],source.[ID_SelectionLast],source.[ID_Стиль],source.[ID_ВыборТЦ],source.[ID_ИсторияРаздачи],source.[ID_Акция],source.[ID_Перекосы],source.[ID_Пол], source.[ID_XNomen]);
  144.  
  145. --when not matched by source then delete;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement