UPDATE @DList1
SET
Listed = a.Listed + b.Listed,
Sold = b.Sold,
Volume = a.Volume + ISNULL(b.Volume, 0)
FROM @DList1 a, @DList2 b
WHERE a.ItemID = b.ItemID
上記の更新されたステートメントでは、列[Listed]
が正しく更新されて[Volume]
いません。
Dlist2
ItemID Listed Sold Volume
104 NULL 1 266000
778 1 1 5390
200 1 0 266000
Dlist1
ItemID Listed Sold Volume
200 1 0 6395000
779 1 0 155000
更新後@Dlist1
ItemID Listed Sold Volume
200 1 0 6661000
779 1 0 155000
図式:
DECLARE @DList1 TABLE
(
ItemID NVARCHAR(20)
, Listed BIGINT
, Sold BIGINT
, Volume BIGINT
)
DECLARE @DList2 TABLE
(
ItemID NVARCHAR(20)
, Listed BIGINT
, Sold BIGINT
, Volume BIGINT
)