COMO ENTRAR REGISTROS TABELA FILHA SEM ITENS
Pessoal bom dia!
Tenho um sistema de pdv de loja de roupas, banco Firebird.
é o seguinte, tenho as seguintes tabelas:
tbl_vendas
id
emissao
vtotal
tbl_vendasprodutos
id
venda (forekey da tbl_vendas.id)
produto
Pois bem, eu preciso listar os registros da tbl_vendas em que não há itens na tbl_vendasprodutos.
Não sou muito bom expert em SQL, mas fiz a seguinte:
Desta forma ele me atende perfeitamente, porém... demora muito (certa de 30 segundos) pra consultar.
Isso pq se trata de apenas um dia (que no caso tem 355 registros).
Há alguma forma de melhorar essa consulta?
Tenho um sistema de pdv de loja de roupas, banco Firebird.
é o seguinte, tenho as seguintes tabelas:
tbl_vendas
id
emissao
vtotal
tbl_vendasprodutos
id
venda (forekey da tbl_vendas.id)
produto
Pois bem, eu preciso listar os registros da tbl_vendas em que não há itens na tbl_vendasprodutos.
Não sou muito bom expert em SQL, mas fiz a seguinte:
select v.id, vp.id from tbl_vendas v
left outer join tbl_vendasprodutos vp on v.id = vp.venda
where cast(v.emissao as date) between [ô]12/24/2009[ô] and [ô]12/24/2009[ô]
and vp.id is null
Desta forma ele me atende perfeitamente, porém... demora muito (certa de 30 segundos) pra consultar.
Isso pq se trata de apenas um dia (que no caso tem 355 registros).
Há alguma forma de melhorar essa consulta?
Acho que vai ficar mais rápido:
Select
*
From
Tbl_Vendas
Where
cast(v.emissao as date) between [ô]12/24/2009[ô] and [ô]12/24/2009[ô]
And not Exists (select 1 from tbl_vendasprodutos where tbl_vendasprodutos.venda = tbl_vendas.id)
ASHKATCHUP ainda continua lento!
Mas vi aqui que o erro era meu
Na verdade a tabela pai não estava relacionada com a tabela filha (forekey)
Coloquei e funcionou certinho!
De qualquer forma obrigado!
Mas vi aqui que o erro era meu
Na verdade a tabela pai não estava relacionada com a tabela filha (forekey)
Coloquei e funcionou certinho!
De qualquer forma obrigado!
Tópico encerrado , respostas não são mais permitidas