BrunoKNS Posted September 9, 2011 Report Share Posted September 9, 2011 O que há de errado nessa Query ?SELECT T.CAMPOG AS ESTADO,COUNT (F.STATUS) AS ATIVO,COUNT (P.STATUS) AS INATIVOFROM TABELA T, TABELA PWHERE F.STATUS = 1AND P.STATUS = 0GROUP BY T.CAMPOGEssa query trás informações inconsistentes, pois acho que multiplica os dados, porem o que eu preciso eu consigo trazer em duas queries diferentes.ExemploSELECT T.ESTADO, COUNT (T.STATUS) AS ATIVOFROM TABELA TWHERE T.STATUS = 1GROUP BY T.ESTADOO que eu preciso é trazer a quantidade de ativos e inativos dos estados é o mesmo campo que preciso calcular os ativos e inativosAgradeço desde já agradeço quem ajudar :blink: Quote Link to comment Share on other sites More sharing options...
0 Fernandinha Posted September 9, 2011 Report Share Posted September 9, 2011 Olá Bruno,Veja se colocando um JOIN ajuda:SELECT T.CAMPOG AS ESTADO,COUNT (F.STATUS) AS ATIVO,COUNT (P.STATUS) AS INATIVOFROM TABELA T, join TABELA P on P.id = t.idWHERE F.STATUS = 1AND P.STATUS = 0GROUP BY T.CAMPOG Quote Link to comment Share on other sites More sharing options...
0 BrunoKNS Posted September 12, 2011 Author Report Share Posted September 12, 2011 Oi Fernandinha,Fiz exatamente o que indicou porem sem sucesso, essa query não retorna registro. Quote Link to comment Share on other sites More sharing options...
0 fulvio Posted September 12, 2011 Report Share Posted September 12, 2011 Boa tarde Bruno, Quando você utiliza o COUNT, o sql realiza a contagem do campo que deseja. Quando você agrupa, o sql pega a coluna especificada e começa a realizar a contagem. Vamos supor que você tem um item na tabela. Este item possui vários status. Ao agrupar por item, o sql conta para aquele item, todos os status dele. Perceba que o agrupamento está sendo realizado por item. Caso faça o agrupamento por status, o resultado será bem diferente... Creio que o problema está sendo por causa dos dois COUNT´s. Igual falou, quando faz em selects separados dá certo. Provavelmente o sql está contando, para cada item status a mais. Sendo assim, a soma fica meio "doida". Se der, tente identificar se um item possui mais de um status. Caso prefira, poste um exemplo. Quote Link to comment Share on other sites More sharing options...
0 BrunoKNS Posted September 13, 2011 Author Report Share Posted September 13, 2011 Claro Fulvio, Valeu a explicação.Seguinte o que preciso é um status tem 1 e 0 e preciso contar correlacionado a um registro qtos 1 e qtos 0 ele possui.Estado Estado COD_ESTADOSão Paulo 1Minas Gerais 2Rio de Janeiro 3Objetos Ativos OBJETO STATUS COD_ESTADOcalculadora 1 1calculadora 0 1calculadora 1 2calculadora 1 2calculadora 0 3calculadora 0 3RESULTADO ESPERADO ESTADO OBJETO_ATIVO OBJETO_INATIVOSão Paulo 1 1Minas Gerais 2 0Rio de Janeiro 0 2Não sei se ficou claro se precisar explico de uma outra forma.Obrigado a todos pelo empenho em me ajudar Quote Link to comment Share on other sites More sharing options...
0 fulvio Posted September 13, 2011 Report Share Posted September 13, 2011 Boa tarde Bruno, Neste caso não tem como trazer o resultado utilizando apenas um select. você terá que contar os status ativos (agrupando por estado) e depois contar os status desativos (agrupando por estado). Na cláusula where não terá como separar isto. Tentei fazer utilizando o CASE, mas mesmo assim trombei com o problema na cláusula where. Se tirar o where das comparações e colocar dentro do case, é como fazer dois selects (que vai dar na mesma). Quote Link to comment Share on other sites More sharing options...
Question
BrunoKNS
O que há de errado nessa Query ?
SELECT T.CAMPOG AS ESTADO,
COUNT (F.STATUS) AS ATIVO,
COUNT (P.STATUS) AS INATIVO
FROM TABELA T, TABELA P
WHERE F.STATUS = 1
AND P.STATUS = 0
GROUP BY T.CAMPOG
Essa query trás informações inconsistentes, pois acho que multiplica os dados, porem o que eu preciso eu consigo trazer em duas queries diferentes.
Exemplo
SELECT T.ESTADO, COUNT (T.STATUS) AS ATIVO
FROM TABELA T
WHERE T.STATUS = 1
GROUP BY T.ESTADO
O que eu preciso é trazer a quantidade de ativos e inativos dos estados é o mesmo campo que preciso calcular os ativos e inativos
Agradeço desde já agradeço quem ajudar :blink:
Link to comment
Share on other sites
5 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.