-2

ユニオンを使用してクエリの結果を挿入すると、最初のクエリの結果のみが挿入されます。UNION の後の 2 番目のクエリは挿入も含めもされません。UNION を使用して結合された 2 つの個別のクエリの両方の結果を挿入する方法

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' 

前もって感謝します!

ボー

4

1 に答える 1

0
  • 2 つの SELECT に同じ数の列と同じ型があることを確認してください。
  • 両方の SELECT が結果を返すことを確認してください。
  • 両方のクエリが同じ行を返す場合は、代わりに UNION ALL を使用してみてください。

UNION は重複レコード (結果のすべての列が同じ) を削除しますが、UNION ALL は削除しません。

于 2013-09-20T12:36:22.403 に答える