UPDATE cartitems SET c_c_id = @newcartID WHERE c_c_id = @oldcartID
så slås två olika c_c_id ihop, men om det finns dubbletter av c_p_id så vill jag att de skall slås ihop och dess c_q bli totalsumma av deras c_q. I tabellen ovan så vill jag alltså att rad 2 och 4 slås ihop och dess c_q värde blir 5.
Det går inte att få ihop i en fråga. Du måste ju ta bort den ena raden
if exists( select * from cartitems where c_c_id = @newcartid)
begin
update cartitems set c_q = (select sum(c_q) ... )
where ...
delete ...
end
else
update ...
Den första update går att skriva på lite olika sätt, det går också med en selfjoin istf subselect.
DECLARE @oldcartID int, @newcartID int
SET @oldcartID = (SELECT cart_id FROM shoppingcart WHERE cart_cust_id = @cartcustID)
SET @newcartID = (SELECT cart_id FROM shoppingcart WHERE cart_cust_id = @username)
UPDATE shoppingcartitems SET carti_cart_id = @newcartID WHERE carti_cart_id = @oldcartID
DELETE shoppingcart WHERE cart_cust_id = @cartcustID
@oldcartID = ett id som är förknippat med en temp kund, i koden nedan = 2
@newcartID = ett id som är förknippat med en registrerad kund, i koden nedan = 1