Ir para conteúdo

POWERED BY:

Arquivado

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

gromano

Contar mesmo que não exista

Recommended Posts

Pessoal,

 

Tenho duas tabelas relacionadas Nota e Item.

 

Preciso pegar a quantidade de item em cada nota já gerada. Porém um item pode estar desativado e quando isto ocorre o campo del nesta tabela está com o valor = 1.

 

Neste caso, eu não quero que este ítem apareça na nota. Por exemplo: se a nota tiver 5 itens, mas um deles está desativado, devem aparecer 4. Se todos os ítens da nota estiverem desativados, quero que apareceça 0. E aí está o problema. Quando todos estão desativados, a nota não aparece no resultado da consulta, é como se ela não existisse.

 

Segue abaixo a consulta que fiz:

 

 

select nota.n_nota, count(item.id_item)

from nota left join item

on nota.id_item = item.id_item

where item.del is null

group by nota.n_nota

 

 

Alguém pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

mah tuh pode colocar um print resultado dos dados (select * from tabela) e outro print do sql que você usa... pra poder exclarecer melhor....

Compartilhar este post


Link para o post
Compartilhar em outros sites

mah tuh pode colocar um print resultado dos dados (select * from tabela) e outro print do sql que você usa... pra poder exclarecer melhor....

 

Bom na verdade, se tem frescura pra todo lado e não pude mandar os dados da tabela.. "questão de segurança"

 

Mas aqui vão os que podem importar neste caso:

 

id_item_nota id_nota id_item

176465 4567 98

176466 4567 124

176467 4567 55

176468 4567 13

176469 4571 98

176470 4572 11

176471 4572 19

176472 4579 124

176473 4579 21

176474 4579 98

 

 

 

 

id_item del

5 0

6 0

7 0

8 0

9 1

10 1

11 1

12 1

13 1

14 0

 

 

A tabela, na verdade é a item_nota... mas o erro persiste. Não sei se consegui te responder...

Compartilhar este post


Link para o post
Compartilhar em outros sites

OUTER JOIN

 

Creio que seria

 

select nota.n_nota, coalesce(count(item.id_item),0) qtd 
from nota left outer join item
on nota.id_item = item.id_item
where item.del is null
group by nota.n_nota

Compartilhar este post


Link para o post
Compartilhar em outros sites

OUTER JOIN

 

Creio que seria

 

select nota.n_nota, coalesce(count(item.id_item),0) qtd 
from nota left outer join item
on nota.id_item = item.id_item
where item.del is null
group by nota.n_nota

 

Não funcionou, Motta...

Continuo com o resultado que omite as notas que tem item = 0.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta

 

select nota.n_nota, coalesce(count(item.id_item),0) qtd from nota 
left outer join item
on nota.id_item = item.id_item
where 
ifnull(item.del,0) != 1
group by nota.n_nota

 

 

 

 

 

Daniel,

Também não deu certo... :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que deu errado ?

 

O resultado obtido ignora as notas que possui itens com status desativado. Estas notas, portanto, ficam como se não existissem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim

 

select nota.n_nota, coalesce(count(item.id_item),0) qtd from nota 
left outer join (select *
                from   item
                where item.del is null) v_item
on nota.id_item = v_item.id_item
group by nota.n_nota

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim

 

select nota.n_nota, coalesce(count(item.id_item),0) qtd from nota 
left outer join (select *
from item
where item.del is null) v_item
on nota.id_item = v_item.id_item
group by nota.n_nota

 

é.. também não deu. Estou começando a achar que este problema não tem solução...:(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não trás 0 quando os itens estão desativados ?!

 

Deveria ter o mesmo efeito de "não existir".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não trás 0 quando os itens estão desativados ?!

 

Deveria ter o mesmo efeito de "não existir".

 

Pois é, não traz.. O item existe, porém o flag nele o deixa desativado, mas na consulta ele não aparece relacionado à nota. Mas quando a nota tem só itens desativados, ela não aparece no resultado.

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.