2013-05-20 113 views
0

所以我想从另一个表的选择查询插入到一个表。我想我必须这样做,因为我想在插入内SUM几个列。最终,我希望这是一个存储过程,将数据从暂存表转移到更规范化的数据。我得到的错误是查询中最后一个字符的语法错误。任何帮助或建议,你可以提供将非常感激。这是我的查询:插入与选择和总和

INSERT INTO ShippingCost (WebOrder, Zone, NetAmount, EnteredWeight, BilledWeight,  Carrier) 
SELECT WebOrder, Zone, NetAmount, EnteredWeight, BilledWeight, Carrier 
FROM 

    (select substring([Package Reference Number 5],4,9) as WebOrder 
      , zone 
      , sum(CAST([Net Amount] as Money)) as NetAmount 
      , sum(CAST([Entered Weight] as decimal)) as EnteredWeight 
      , sum(CAST([Billed Weight] as INT)) as BilledWeight 
      , 'UPS' as Carrier 

       from UpsStaging 
       where [Package Reference Number 5] LIKE 'WEB%[^0-9]%' 
       group by [Package Reference Number 5],zone 
    ) 

回答

0

添加别名的子查询的末尾:

INSERT INTO ShippingCost (WebOrder, Zone, NetAmount, EnteredWeight, BilledWeight,  Carrier) 
SELECT WebOrder, Zone, NetAmount, EnteredWeight, BilledWeight, Carrier 
FROM 
(select substring([Package Reference Number 5],4,9) as WebOrder 
, zone 
, sum(CAST([Net Amount] as Money)) as NetAmount 
, sum(CAST([Entered Weight] as decimal)) as EnteredWeight 
, sum(CAST([Billed Weight] as INT)) as BilledWeight 
, 'UPS' as Carrier 

    from UpsStaging 
    where [Package Reference Number 5] LIKE 'WEB%[^0-9]%' 
    group by [Package Reference Number 5],zone 
) as [subq] 

是否子查询的工作?我不希望线路组正常工作 - 相反,使用这个:GROUP BY substring([Package Reference Number 5],4,9), zone

+0

嘿别名工作!我一直盯着这两天...是的子查询工作,但我把你的编辑无论如何。非常感谢!!。 – bigjoe

0

我认为你需要别名你的派生表,即使你不引用别名。在圆括号后面加上“x”。

+0

谢谢别名是把戏! – bigjoe