Ir para conteúdo

Arquivado

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

manolegal

Mostrar valor "0" se não retornar linha

Recommended Posts

Tenho o seguinte código:

SELECT COUNT(DISTINCT cras_paif_familias_inclusoes.familia_incluida_id)
                FROM pessoas, cras_paif_familias_inclusoes
                WHERE pessoas.codigo_responsavel = cras_paif_familias_inclusoes.familia_incluida_id
                AND cras_paif_familias_inclusoes.ano_inclusao='2014'
                AND cras_paif_familias_inclusoes.mes_inclusao='01'
                HAVING AVG(renda_familiar) < 70;

Gostaria que o resultado fosse "0" quando não retornar nenhuma linha.

No aguardo. Valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Motta.

Aconsulta não está retornando nenhuma linha. Gostaria que retornasse uma linha com o valor "0";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ja entendi o que vc quer, estou num tablet, impossivel editar um sql ...

 

Mas tente ...

 

Faca uma sql primeiro contando a media pelo agrupamento que vc quer

 

Usando este sql como tabela virtual ai sim faca um count

 

A média de renda familiar e em cima de que ?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

A Média é dos integrantes da família.

Na verdade o código é uma parte da consulta, onde estou com dificuldade. A consulta busca totais de várias tabelas para montar 01 relatório:

SELECT COUNT (id_pessoa)as dado,

    (SELECT COUNT(DISTINCT pessoas.codigo_responsavel)
    FROM pessoas,.....)as resultado_1

    (SELECT COUNT(id_atendimento)
    FROM outra_tabela, .....) as resultado_2

    SELECT COUNT(DISTINCT cras_paif_familias_inclusoes.familia_incluida_id)
    FROM pessoas, cras_paif_familias_inclusoes
    WHERE pessoas.codigo_responsavel = cras_paif_familias_inclusoes.familia_incluida_id
    AND cras_paif_familias_inclusoes.ano_inclusao = '2014'
    AND cras_paif_familias_inclusoes.mes_inclusao='01'
    HAVING (AVG(pessoas.renda_familiar) < 70))
    as total_familias_situacao_extrema_pobreza_b1

FROM pessoas;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Renda_familiar já não é isto ?

 

Média em relação a que ?

 

Não entendi o uso do HAVING.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não precisa do HAVING , ele é para agregações

 

SELECT COUNT(DISTINCT cras_paif_familias_inclusoes.familia_incluida_id) 
FROM pessoas, cras_paif_familias_inclusoes 
WHERE pessoas.codigo_responsavel = cras_paif_familias_inclusoes.familia_incluida_id 
AND cras_paif_familias_inclusoes.ano_inclusao='2014' 
AND cras_paif_familias_inclusoes.mes_inclusao='01' 
and renda_familiar < 70

exemplo com o HAVING

 

SELECT pessoas.cidade , COUNT(DISTINCT cras_paif_familias_inclusoes.familia_incluida_id) 
FROM pessoas, cras_paif_familias_inclusoes 
WHERE pessoas.codigo_responsavel = cras_paif_familias_inclusoes.familia_incluida_id 
AND cras_paif_familias_inclusoes.ano_inclusao='2014' 
AND cras_paif_familias_inclusoes.mes_inclusao='01' 
group by pessoas.cidade
HAVING AVG(renda_familiar) < 700

cidades (supondo que exista o campo) onde a renda média é menor que 700

 


 




			
		

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só que para descobrir a renda familiar eu preciso fazer a média, pois cada integrante da família possui uma renda e eu preciso descobrir a média familiar (soma das rendas / número integrantes da família).

Vou tentar refazer o código mais tarde, e retorno o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ficou confuso (para mim) pois a coluna já se chama RENDA_FAMILIAR

 

select COUNT(*)
from
(
SELECT cras_paif_familias_inclusoes.familia_incluida_id
FROM pessoas, cras_paif_familias_inclusoes
WHERE pessoas.codigo_responsavel = cras_paif_familias_inclusoes.familia_incluida_id
AND cras_paif_familias_inclusoes.ano_inclusao='2014'
AND cras_paif_familias_inclusoes.mes_inclusao='01'
group by cras_paif_familias_inclusoes.familia_incluida_id
having AVG(RENDA_FAMILIAR) < 70
)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não funcionou.

Preciso descobrir o total de famílias cuja renda familiar é > 70. O campo pessoas.renda_familiar na verdade podemos dizer que é uma "renda_pessoa" pois há uma valor informado para cada pessoa. Preciso calcular a média de renda da família, onde o campo pessoas.codigo_responsavel seja igual, no cadastro de pessoas. Caso não exista resultados gostaria que retornasse zero ao invés de vazio.

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.