2013-09-20 3 views
-2

, когда я вставляю результаты запроса с помощью union, он вставляет только результаты первого запроса. Пока второй запрос после UNION не вставлен и не включен. Как вставить оба результата из двух отдельных запросов в сочетании с UNIONОн не вставляет данные в таблицу, используя UNION

INSERT INTO ResourceTaskFact.dbo.Region 
SELECT 'Region1' AS RegionView, 
     'R1'  AS RegionViewCode, 
     sl.sublocationstring, 
     sl.subLocationCode, 
     l.locationcode, 
     r.regioncode, 
     rg.RegionGrpCode, 
     d.DivisionCode, 
     dg.DivisionGrpCode, 
     -- 
     sl.SubLocationDescription, 
     l.LocationDescription, 
     r.regiondescription, 
     rg.RegionGrpDescription, 
     d.divisionDescription, 
     dg.DivisionGrpDescription 
FROM SMECSubLocation sl, 
     Location l, 
     Region r, 
     RegionGrp rg, 
     Division d, 
     DivisionGrp dg 
WHERE l.LocationCode = sl.LocationCode 
     AND r.RegionCode = l.RegionCode 
     AND r.RegionGrpCode = rg.RegionGrpCode 
     AND d.divisioncode = rg.divisioncode 
     AND d.divisiongrpcode = dg.divisiongrpcode 
UNION 
SELECT 'Region2', 
     'R2', 
     sl.sublocationstring, 
     sl.subLocationCode, 
     l.locationcode, 
     r.regioncode, 
     rg.RegionGrpCode, 
     d.DivisionCode, 
     dg.DivisionGrpCode, 
     -- 
     sl.SubLocationDescription, 
     l.LocationDescription, 
     r.regiondescription, 
     rg.RegionGrpDescription, 
     d.divisionDescription, 
     dg.DivisionGrpDescription 
FROM SMECVirtualSubLocation sl, 
     SCVirtualLocation l, 
     SCVirtualRegion r, 
     SCVirtualRegionGrp rg, 
     SCVirtualDivision d, 
     SCVirtualDivisionGrp dg 
WHERE l.LocationCode = sl.LocationCode 
     AND r.RegionCode = l.RegionCode 
     AND r.RegionGrpCode = rg.RegionGrpCode 
     AND d.divisioncode = rg.divisioncode 
     AND d.divisiongrpcode = dg.divisiongrpcode 
     AND sl.CustomOrgCode = 'DEF' 
     AND l.CustomOrgCode = 'DEF' 
     AND r.CustomOrgCode = 'DEF' 
     AND rg.CustomOrgCode = 'DEF' 
     AND d.CustomOrgCode = 'DEF' 
     AND dg.CustomOrgCode = 'DEF' 

Спасибо заранее!

Beau

+4

Удалить вставку и проверить, работает ли Select? –

+1

Случайное предположение: вторая часть UNION возвращает 0 строк. –

ответ

0
  • Убедитесь, что имеет одинаковое количество столбцов и одни и те же типов в двух операторах SELECT.
  • Убедитесь, что оба SELECT возвращают результаты.
  • Попробуйте использовать UNION ALL вместо этого, в случае, если оба запроса возвращают одну и ту же строку.

UNION удаляет повторяющиеся записи (где все столбцы в результатах одинаковы), UNION ALL - нет.

+0

Жестко закодированные ''Region2'' и'' Region1'' делают невозможным, чтобы обе ветви имели одни и те же строки. –

+0

Первый запрос дает 162 результата/строк, которые являются правильными, в то время как второй запрос также предоставляет 162 результата/строк, когда я запускаю оба с использованием UNION, он дает 324 результата/строк. – BA82283

Смежные вопросы