zu verwenden Wie befülle ich tb_1
mit einer einzigen Anweisung, ohne mehrere Updateanweisungen in SQL Server zu verwenden? Dann, wenn die BU mehrere Segmente hat, Verbraucher, Großhandel, usw. & haben sie alle den gleichen Satz von Produkten.Ich möchte eine Tabelle mit Ergebnissätzen aus einer anderen Tabelle aktualisieren, ohne mehrere Updateanweisungen in SQL Server
Nehmen wir an, Sie haben mehr als 10 Produkte.
UPDATE tb_1
SET CurrYear = (SELECT SUM(CNT)
FROM tb_2
WHERE PRODUCT_GROUP IN ('Product1')
AND SEGMENT Like 'Consumer%' ----(Consumer PP, Consumer Post)
WHERE Metric = 'Product1'
AND BU = 'Consumer'
--- here we add Product2
UPDATE tb_1
SET CurrYear = (SELECT SUM(CNT)
FROM tb_2
WHERE PRODUCT_GROUP IN ('Product2')
AND SEGMENT IN ('Business', 'Retail'))
WHERE Metric = 'Product2'
AND BU = 'Enterprise'
----Here We Add Another Product for different Segments
UPDATE tb_1
SET CurrYear = (SELECT SUM(CNT)
FROM tb_2
WHERE PRODUCT_GROUP IN ('Product1')
AND SEGMENT IN ('OLO', 'WS')) ---Wholesale = (OLO + WS)
WHERE Metric = 'Product1
AND BU = 'Wholesale'
Vorsichtig, wenn Sie Ihre Frage bearbeiten; Sie haben die gesamte hinzugefügte Codeformatierung entfernt. Es ist viel einfacher, Ihre Frage zu lesen, wenn die Codefragmente in einen Codeblock eingepackt sind. Es bewahrt Abstände, Registerkarten und neue Zeilen. –