Eu tenho 2 tabelas que são um relacionamento de um para muitos. Quero ingressar nas duas tabelas, mas o resultado mostrado após a junção não é o que preciso. Abaixo está a tabela e dados de amostra.
Create table #temp (
DONo varchar(10),
Amount decimal(18,2),
OrderNo varchar(10)
)
Create table #order (
Item varchar(10),
Amount decimal(18,2),
OrderNo varchar(10),
PackingDate date
)
Insert into #temp(DONo, Amount, OrderNo)
VALUES('A123', 1000, 'O123')
Insert into #temp(DONo, Amount, OrderNo)
VALUES('A124', 1100, 'O124')
Insert into #order (OrderNo, Item, Amount, PackingDate)
VALUES('O123', 'Pen', 100, '2024-02-01')
Insert into #order (OrderNo, Item, Amount, PackingDate)
VALUES ('O123', 'Color', 800, '2024-02-01')
Insert into #order (OrderNo, Item, Amount, PackingDate)
VALUES ('O123', 'Box', 100, '2024-02-02')
Eu tentei abaixo juntar a consulta
select
do.DONo, do. Amount, do.OrderNo, SUM(so.Amount)[[OrderAmount], so.PackingDate
from #temp do
left join
#order so
on
do.OrderNo = so.OrderNo
group by
do.DONo, do. Amount, do.OrderNo, so.PackingDate
Aqui está o resultado da consulta acima
DONo DOAmount OrderNo Amount PackingDate
A123 1000.00 O123 900.00 2024-02-01
A123 1000.00 O123 100.00 2024-02-02
A124 1100.00 O124 NULL NULL
A saída esperada que desejo como abaixo
DONo DOAmount OrderNo Amount PackingDate
A123 1000.00 O123 900.00 2024-02-01
A123 O123 100.00 2024-02-02
A124 1100.00 O124 NULL NULL
Como o DO não é o mesmo para o pedido O123, o valor do DO I precisa ser mostrado uma vez. A razão pela qual preciso mostrar a quantidade de DO uma vez é porque quando estiver na visualização, as ferramentas irão somar a quantidade de DO e ela dobrará no gráfico de barras.
Acho que minha direção está errada e o design da minha mesa estava errado. Por favor, me oriente como posso consertar e mostrar o resultado que preciso.