gromano 0 Denunciar post Postado Janeiro 7, 2011 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
macielcr7 9 Denunciar post Postado Janeiro 7, 2011 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
gromano 0 Denunciar post Postado Janeiro 7, 2011 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
Motta 645 Denunciar post Postado Janeiro 7, 2011 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
gromano 0 Denunciar post Postado Janeiro 7, 2011 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
Daniel LM Costa 2 Denunciar post Postado Janeiro 8, 2011 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 Compartilhar este post Link para o post Compartilhar em outros sites
gromano 0 Denunciar post Postado Janeiro 10, 2011 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
Motta 645 Denunciar post Postado Janeiro 10, 2011 O que deu errado ? Compartilhar este post Link para o post Compartilhar em outros sites
gromano 0 Denunciar post Postado Janeiro 10, 2011 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
Motta 645 Denunciar post Postado Janeiro 10, 2011 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
gromano 0 Denunciar post Postado Janeiro 10, 2011 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
Motta 645 Denunciar post Postado Janeiro 10, 2011 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
gromano 0 Denunciar post Postado Janeiro 10, 2011 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