Ola amigos
boa tarde
estou batendo a cabeça para montar um select simples porem nada funciona (acho que é a idade)
tenho um tabela de itens de pedido com os seguintes campos:
pedido, cliente, produto, vlr_unitario etc
na tabela tenho alguns registros
pedido cliente produto vlr_unitario
4592 2255 caneta azul bic 1.20
4592 2255 agua mineral 1.50
4567 2255 caneta azul bic 1.20
4567 2255 agua mineral 1.50
4533 2255 caneta azul bic 1.22
4529 2255 caneta azul bic 1.20
4508 2255 caneta azul bic 1.25
preciso montar um select pegando apenas os pedidos que tenham os produtos iguais porem somente com valores diferentes.
deveria mostrar por exemplo somente o pedido 4592, 4533 e 4508 cujo o produto esta com valores diferentes
tentei montar um select +/- assim mas ele mostra todos os produtos e eu queria que mostrasse apenas os que estão com valores diferentes
SELECT A.PEDIDOS, A.UNITARIO, B.CODIGO, B.DESCRICAO
FROM ITENS_PEDIDOS AS A
LEFT JOIN PRODUTOS AS B ON(A.CE_PRODUTOS = B.ID_PRODUTOS)
WHERE IDPEDIDOS IN ('031929','031930','031931','031932')
GROUP BY UNITARIO ORDER BY produtos;
abraço
select com divergencia de preço
Moderador: Moderadores
select com divergencia de preço
O ideal é agrupar os produtos por pedido e verificar se há mais de um valor distinto para cada produto
Essa consulta retorna os pedidos que têm pelo menos um produto com valores diferentes. Para listar os pedidos específicos, você pode fazer um JOIN com a tabela original
Esse código primeiro identifica quais produtos de um cliente têm valores diferentes e, em seguida, usa essa informação para selecionar os pedidos correspondentes
A pergunta é, será que é isso que precisa? Funciona para o seu caso?
Código: Selecionar todos
SELECT pedido
FROM ITENS_PEDIDOS
GROUP BY cliente, produto
HAVING COUNT(DISTINCT vlr_unitario) > 1;Código: Selecionar todos
SELECT DISTINCT A.pedido
FROM ITENS_PEDIDOS A
JOIN (
SELECT cliente, produto
FROM ITENS_PEDIDOS
GROUP BY cliente, produto
HAVING COUNT(DISTINCT vlr_unitario) > 1
) B ON A.cliente = B.cliente AND A.produto = B.produto;A pergunta é, será que é isso que precisa? Funciona para o seu caso?
