Home Forums SQL Server 2008 T-SQL (SS2K8) MERGE Statement DELETE from TARGET when not in SOURCE 'hanging' RE: MERGE Statement DELETE from TARGET when not in SOURCE 'hanging'

  • Cowboy DBA (6/21/2013)


    Assuming I've understood what you're on about you might have to do your delete as:

    DELETE FROM dbo.cart C

    LEFT OUTER JOIN

    (SELECT

    @sessionid as sessionid

    ,ISNULL(o.free_subsku,0) as subsku

    ,o.free_sku as mainsku

    ,ko.cartrsn

    ,o.qty_free * ko.qty as qty

    ,COALESCE(sp.price,p.price) as price ,COALESCE(sp.[weight],p.[weight]) as [weight]

    FROM offer o

    inner join @cart_offer ko on o.id = ko.offer_id

    inner join products p on o.free_sku = p.sku

    left join subproducts sp on o.free_subsku = sp.sku

    WHERE o.active = 1 and o.offer_type = 'GWP'

    ) D

    ON C.sessionid = D.sessionid

    and C.mainsku = D.mainsku

    and C.subsku = D.subsku

    WHERE D.sessionid IS NULL

    AND C.sessionid = @sessionid

    As I said earlier, you need to look at your query plan to ascertain what is going on.

    Thanks Cowboy, I will give that try, however i did get it to work another way. The price is always a certain amount for 'GWP' so i check the price , similar to the check for GWP 🙂