1
SELECT Pedido.NumPedido
, Pedido.CdCliente
, Cliente.Nome
, Produto.CdProduto
, Produto.Descricao
, PedidoItem.Quantidade
, PedidoItem.ValorUnitario
, PedidoItem.ValorTotalItem
FROM Cliente
INNER JOIN Pedido ON Cliente.CdCliente = Pedido.CdCliente
INNER JOIN PedidoItem ON Cliente.CdCliente = PedidoItem.CdCliente
INNER JOIN Produto ON PedidoItem.CdProduto = Produto.CdProduto
WHERE (PedidoItem.ValorUnitario * PedidoItem.Quantidade = PedidoItem.ValorTotalItem)
AND (Cliente.Nome = 'ELETROMATIC DE GARCA LTDA')
AND (Pedido.NumPedido = '1')
ORDER BY ValorTotalItem ASC
However, if I shoot AND (Pedido.NumPedido = '1')
the results double.
Ex: Codpedido 100, 101, 110 = Numpedido 1 and Codpedido 106 = Numpedido
Except the code stays:
Codpedido 100, 101, 110, 106 and Numpedido 8 and Numpedido 1.
have how to explain/format this example better? got confused
– rLinhares
Hello, rLinhares. I put an image for better visualization. I did a "gambiarra" to be able to show without duplicity, but, it is wrong, because the product Test 106 has as Numpedido the value 8.
– Maria Clara
Hello, @Diego. I was able to identify my error. I was double-referencing Cdproduct without need. My mistake was in this Inner Join (
INNER JOIN PedidoItem ON Cliente.CdCliente = PedidoItem.CdCliente
), where in fact, I should relate to Request.Numpedido, so that there would be no duplications. Thank you for your attention.– Maria Clara