Я работаю над тем, как обновить статус заказа в моей системе на основе статуса заголовков счетов-фактур заказа.В настоящее время запрос ниже делает это, однако это делает это многократно (один раз на заголовок счета).Все заголовки счетов в заказе будут иметь одинаковый статус, поэтому я ищу способ ограничить это проверкой только одного заголовка счета.
UPDATE [MyServer].[MyDatabase].[dbo].[Orders]
SET Status = (
CASE
WHEN ih.InvoiceStatus = 'ReadyToPrint'
THEN 4
WHEN ih.InvoiceStatus = 'Transferred'
THEN 5
END
)
FROM [MyServer].[MyDatabase].[dbo].[Orders] ord
INNER JOIN Database2.dbo.invoiceheader ih
ON ih.OrderHeaderNumber= ord.OrderNumber
WHERE ord.Status = 2
SAMPLE DATA: в настоящее время, если я сделаю SELECT
в статусе, а не в наборе, я получаю 4 или 5 для каждого заголовка счета.Я хотел бы найти способ ограничить это только одним на заказ.
Заголовки счетов-фактур имеют отношение к заказам на основе OrderHeaderNumber заголовка счета-фактуры и OrderNumber заказа, с чем я сопоставляюсь дляthe Inner Join.
SAMPLE Строки заголовков счетов: Ниже приведены два примера заголовков счетов для гипотетического заказа.
OrderHeaderNumber - InvoiceNumber - HeaderCharge - InvoiceStatus
12345 - 129 - 200 - ReadyToPrint
12345 - 128 - 350 - ReadyToPrint