0

そのため、別のテーブルの選択クエリから 1 つのテーブルに挿入しようとしています。挿入内のいくつかの列を合計しようとしているので、このようにする必要があると考えました。最終的には、これをストアド プロシージャにして、データをステージング テーブルからより正規化されたデータに移動したいと考えています。私が得ているエラーは、クエリの最後の文字が何であれ、構文エラーです。あなたが提供できる助けや提案があれば、大歓迎です。これが私のクエリです:

    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
    )
4

2 に答える 2

0

エイリアスを参照しなくても、派生テーブルにエイリアスを付ける必要があると思います。閉じ括弧の後に「x」を付けます。

于 2013-05-20T20:06:09.183 に答える
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

于 2013-05-20T20:06:41.533 に答える