ALTER PROCEDURE sp_updateInward
(@bl_num VARCHAR(30),
@cg_type VARCHAR(10))
AS
CREATE TABLE #temp_select
(
qty int,
wght decimal(8,2),
vol decimal(8,2)
)
INSERT INTO #temp_select
SELECT
CASE
WHEN @cg_type = 'BB'
THEN SUM(ISNULL(CAST(t1.qty AS FLOAT), 0))
ELSE 1
END AS qty,
SUM(ISNULL(CAST(t1.wght AS FLOAT), 0)) AS wght,
SUM(ISNULL(CAST (t1.vol AS FLOAT), 0)) AS vol
FROM
godown_storage t1
INNER JOIN
ccosbl t2 ON t2.id = t1.blso_id
WHERE
t2.bl_num = @bl_num
UPDATE ccosblitem
SET qty = #temp_select.quantity,
wght = #temp_select.weight,
vol = #temp_select.volume
FROM ccosblitem t3
INNER JOIN ccosbl t4 ON t4.id = t3.master_id
WHERE t4.bl_num = @bl_num
SELECT * FROM ccosblitem
ccosblitem
をselect文から更新する必要があります。私はストアドプロシージャでそれを行い、一時テーブルを作成します。 declare変数を使用しようとしましたが、 'AS'が間違っているというエラーが表示されます。選択と更新テンポラリテーブルのストアドプロシージャのselect文の結果を使用
サイドノート:ストアドプロシージャのプレフィックス 'sp_'を使用しないでください**。マイクロソフトは、[*ストアドプロシージャの名前付け*を参照してください](http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx)、およびあなたはいつか名前衝突のリスクを将来実行します。 [ストアドプロシージャのパフォーマンスにも悪い](http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix)単に 'sp_'を避け、他の何かを接頭辞として使うのが最善です。 –