2013-05-20 52 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