Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DannyND

Retornar registro diferente entre 2 tabelas

Recommended Posts

Olá pessoal, tudo certo?

O problema é o seguinte. . tenho duas tabelas MySQL com itens de um pedido e outra com os itens faturados desse pedido.

 

Quero exibir apenas os itens que não foram faturados, ou seja, retornar os registros que existem na tabela de pedidos, porém não existem na tabela de faturados, gerando um saldo para faturamento.

 

A query já ajuda, mas o bom mesmo seria o código PHP.

 

Valeu. ..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá AmareshinO,

Segue estrutura das tabelas.

 

aviso_itens (

cd_item int(6) unsigned NOT NULL auto_increment,

nr_nota int(6) NOT NULL DEFAULT '0' ,

nr_item int(3) unsigned NOT NULL DEFAULT '0' ,

cd_pedido int(6) NOT NULL DEFAULT '0' ,

nr_ped_cli varchar(8) ,

nr_tipo varchar(10) NOT NULL DEFAULT '' ,

vl_item float(12,2) DEFAULT '0.00' ,

per_des float(4,2) DEFAULT '0.00' ,

qtd int(9) unsigned ,

uni char(2) ,

origem char(1) ,

class varchar(10) ,

per_ipi float(4,2) DEFAULT '0.00' ,

preco float(12,2) DEFAULT '0.00' ,

div_ven char(2) ,

per_icm float(4,2) DEFAULT '0.00' ,

PRIMARY KEY (cd_item),

KEY indice1 (nr_nota,cd_pedido),

KEY indice2 (nr_item)

);

 

tab_pedidos_itens (

CD_ITEM int(8) unsigned NOT NULL auto_increment,

CD_PEDIDO int(8) ,

CD_PRODUTO varchar(15) ,

NR_QUANTIDADE int(5) ,

VL_VENDA_PEDIDO float(15,2) ,

log text NOT NULL ,

NR_QT_IRMAOS int(5) unsigned NOT NULL DEFAULT '0' ,

PRIMARY KEY (CD_ITEM),

KEY indice1 (CD_PEDIDO,CD_PRODUTO)

);

 

Preciso retornar os registros da tabela tab_pedidos_itens que não existem na aviso_itens quando o código do pedido for igual nas duas tabelas.

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, eh so voce montar uma query entao!

 

select p.*
from tab_pedidos p, aviso_itens i
where i.cd_pedido != p.cd_pedido

aqui ele vai pegar todos os registros da tabela cd_pedido onde nao existam o codigo igual na tabela aviso_itens

 

era isso +-?

 

 

OBS: Eu nao testei e tb nao sei se o mySQL aceita ligar as 2 tabelas do jeito que eu fiz aki! entao se nao funcionar tem que ser feito um join entre as tabelas para pegar os dados que voce precisa!

 

 

abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é bem isso que preciso...Vou exemplificar melhor

 

Exemplo: contrato 1234

 

Itens na tabela tab_pedidos_itens: 111,222,333 e 444

Itens faturados na tabela aviso_itens: 111 e 333

 

Preciso mostrar apenas os itens 222 e 444 da tabela tab_pedidos_itens.

Tenho que comparar os itens nas duas tabelas com numero de pedido igual, porém só retornar o que não fi faturado.

 

A lógica é bem simples, mas to penando pra colocar isso no código. . .afff rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é bem isso que preciso...Vou exemplificar melhor

 

Exemplo: contrato 1234

 

Itens na tabela tab_pedidos_itens: 111,222,333 e 444

Itens faturados na tabela aviso_itens: 111 e 333

 

Preciso mostrar apenas os itens 222 e 444 da tabela tab_pedidos_itens.

Tenho que comparar os itens nas duas tabelas com numero de pedido igual, porém só retornar o que não fi faturado.

 

A lógica é bem simples, mas to penando pra colocar isso no código. . .afff rs

 

Espero que já tenha resolvido, mas se não:

 

SELECT * FROM tab_pedidos_itens

WHERE NOT EXISTS (SELECT * FROM aviso_itens

WHERE aviso_itens.CD_ITEM= tab_pedidos_itens.CD_ITEM)

 

ou se quiser o resultado em NULL

 

SELECT DISTINCT etvitens.cd_item, Sum (aviso_itens.qtd)

FROM tab_pedidos_itens

LEFT OUTER JOIN aviso_itens

ON aviso_itens.cd_item = tab_pedidos_itens.cd_item

GROUP BY tab_pedidos_itens.cd_item

ORDER BY tab_pedidos_itens.cd_item

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.