1
If exists
(select @item from Table_RestaurantsTransaction
where Mobile=@mobile and OrderPlaced=0 and Restaurant=@restaurantName ) 

begin

update Table_RestaurantsTransaction
set Quantity+=@quantity
where Item=@item and Mobile=@mobile and OrderPlaced=0 and Restaurant=@restaurantName

end

else

begin

insert into Table_RestaurantsTransaction(Mobile,TransactionID,Item,Price,DecisionStatus,OrderPlaced,TransactionDate,Restaurant,Quantity)
values(@mobile,@transactionID,@item,@price,1,0,GETDATE(),@restaurantName,@quantity)


end
end

上記のクエリでは、アイテムを追加するときに初めて挿入クエリが実行されます。同じアイテムを追加すると、更新クエリが実行されます。しかし、新しいアイテムを追加しようとすると、else 句にある挿入クエリが実行されません。

私の間違いを教えてください。

4

1 に答える 1

7

if句にアイテムが存在するかどうかをテストしたいと思います:

If exists (select 1
           from Table_RestaurantsTransaction
           where item = @item and Mobile=@mobile and OrderPlaced=0 and Restaurant=@restaurantName
          ) 
. . .

mergeただし、これをすべて 1 つのステートメントで行うステートメントについて学ぶ必要があります。

于 2013-08-28T15:05:20.550 に答える