使用insert into select从多个表复制数据

时间:2014-02-10 07:32:40

标签: sql sql-server-2008

我有三个Table DimCity,Product,DimPeriod

我必须从DimCity,P_name,P_type从Product,Period_ID从DimPeriod复制数据C_ID 进入FactTable。

我已经创建了FactTable并插入了我写的值

      INSERT INTO [FactTable]
       ([C_ID],[Period_ID],
[P_name],
[P_type])
 select 
      [C_ID] from DimCity
      Union ALL [P_name],[P_type] from Product
      UNION ALL [Period_ID] From DimPeriod 

但它不起作用。

1 个答案:

答案 0 :(得分:0)

试试这个

   INSERT INTO [FactTable]([C_ID],[Period_ID],[P_name],[P_type])
   SELECT
      [C_ID], [P_name], [P_type],[Period_ID] 
   FROM DimCity,Product,DimPeriod 

但不建议这样做。

如果这些表之间有任何关系,那么您可以按如下方式使用Join:

 INSERT INTO [FactTable]([C_ID],[Period_ID],[P_name],[P_type])
    SELECT
        P.[C_ID], 
        Q.[P_name], Q.[P_type],
        R.[Period_ID] 
    FROM DimCity P Join Product ON 'Condition Here'
         Join DimPeriod ON 'Condition Here'