BrookK
asked on
Error in Update using CASE
I get an error when executing the following code. Can someone tell me where I am going wrong?
UPDATE IC
SET IC.InvoiceSiteID = (CASE WHEN IC.SiteID IN(SELECT InvoiceToSite FROM QuoteInvoicing
WHERE QuoteID = IC.QuoteID)
THEN InvoiceToSite
ELSE MIN(InvoiceToSite) FROM QuoteInvoicing
WHERE QuoteID = IC.QuoteID
AND InvoiceToSite <> IC.SiteID
END)
FROM #InvoiceConsolidation IC
INNER JOIN QuoteInvoicing IQ ON IC.QuoteID = IQ.QuoteID
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
or like this
UPDATE IC
SET IC.InvoiceSiteID = (CASE WHEN EXISTS (SELECT null FROM QuoteInvoicing
WHERE QuoteID = IC.QuoteID AND IC.SiteID = InvoiceToSite)
THEN InvoiceToSite
ELSE (SELECT MIN(InvoiceToSite) FROM QuoteInvoicing
WHERE QuoteID = IC.QuoteID
AND InvoiceToSite <> IC.SiteID )
END)
FROM #InvoiceConsolidation IC
INNER JOIN QuoteInvoicing IQ ON IC.QuoteID = IQ.QuoteID
UPDATE IC
SET IC.InvoiceSiteID = (CASE WHEN EXISTS (SELECT null FROM QuoteInvoicing
WHERE QuoteID = IC.QuoteID AND IC.SiteID = InvoiceToSite)
THEN InvoiceToSite
ELSE (SELECT MIN(InvoiceToSite) FROM QuoteInvoicing
WHERE QuoteID = IC.QuoteID
AND InvoiceToSite <> IC.SiteID )
END)
FROM #InvoiceConsolidation IC
INNER JOIN QuoteInvoicing IQ ON IC.QuoteID = IQ.QuoteID
ASKER
Thank you All.
There was a syntax error and I have corrected it as per Aneeshattingal's first post but had to use CAST for MIN(InvoiceToSite) to convert to INT.
Thanks all
-B
There was a syntax error and I have corrected it as per Aneeshattingal's first post but had to use CAST for MIN(InvoiceToSite) to convert to INT.
Thanks all
-B
Great! Please close the question.
Open in new window