labanca 0 Denunciar post Postado Março 7, 2008 To com seguinte problema: Tenho que fazer uma consulta usando count. E preciso que os zeros sejam exibidos no resultado da query. Tipo agrupo por codigos e vejo sempre que aquele codigo aparece se, no mesmo registro dele, outro valor (por exemplo: "sim") aparece também. por exemplo: cod resposta 123 sim 123 sim 123 não 123 não 321 não 321 sim 456 não 456 não 456 não Cod count 123 2 321 1 456 0 <= isso não acontece =( Mas o count não retorna os zeros!!! Não preciso de nada pra PHP ou qualquer outra coisa, é no mysql mesmo. Já procurei muito e não achei nada ainda na internet Se alguém puder me ajudar fico MUITO grato. Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Março 9, 2008 Da pra fazer isso de milhoes de jeitos, vou ensinar dois jeitos simples.... Jeito mais simples porem pode ser lento se a tabela for mto gigante select cod , sum(resposta) from ( SELECT cod as cod, CASE resposta WHEN 'Sim' THEN '1' WHEN 'Nao' THEN '0' END as resposta FROM tabela ) as abc Group by cod Jeito 2 (mais complicadinho e mais rapido) Select distinct tab1.cod as cod , if(tab2.qtde_resposta IS NULL, '0', tab2.qtde_resposta) as qtde_respostas_sim from tabela as tab1 LEFT JOIN ( select cod as cod, count(resposta) as qtde_resposta from trabela where resposta='Sim' Group by cod ) as tab2 ON tab1.cod=tab2.cod Compartilhar este post Link para o post Compartilhar em outros sites
arglas 0 Denunciar post Postado Dezembro 30, 2008 precisei usar e não consegui fazer funcionar http://forum.imasters.com.br/public/style_emoticons/default/natal_sad.gif Compartilhar este post Link para o post Compartilhar em outros sites
arglas 0 Denunciar post Postado Dezembro 30, 2008 fiz assim: SELECT codigo, sum(fg_utilizado) from ( SELECT codigo as codigo, CASE fg_utilizado WHEN 'S' THEN '1' WHEN 'N' THEN '0' END as fg_utilizado FROM tabela_x ) as abc Group by codigo fg_utilizado é no caso S ou N Cada cidade podem usar varios numeros, dai eu vejo quantos numeros a cidade ja usou ou quantos ela ainda tem para usar, fazendo a conta dos fg_utilizados = S. A mensagem de erro diz que nao pode passar esse tipo de argumento: Msg 409, Level 16, State 2, Line 7 The sum or average aggregate operation cannot take a varchar data type as an argument. Compartilhar este post Link para o post Compartilhar em outros sites
Mário Monteiro 179 Denunciar post Postado Dezembro 30, 2008 que erro ocorreu e como voce fez? Editado: Desculpe a janela estava aberta e quando respondi voce ja havia postado o que perguntei Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Dezembro 30, 2008 tenta assim SELECT codigo, sum(fg_utilizado) from ( SELECT codigo as codigo, if( fg_utilizado = 'S',1,0) as fg_utilizado FROM tabela_x ) as abc Group by codigo Compartilhar este post Link para o post Compartilhar em outros sites
arglas 0 Denunciar post Postado Fevereiro 10, 2009 tenta assim SELECT codigo, sum(fg_utilizado) from ( SELECT codigo as codigo, if( fg_utilizado = 'S',1,0) as fg_utilizado FROM tabela_x ) as abc Group by codigo nem deu =( Msg 156, Level 15, State 1, Line 4 Incorrect syntax near the keyword 'if'. Msg 170, Level 15, State 1, Line 4 Line 4: Incorrect syntax near ','. Eu precisava MUITO dessa funcao, porque eu preciso preencher 4 tipos de tabela diferente com aprox. 300 registros e precisava alinhar depois essa consulta com o parametro padrao, cujo contem os nomes que com sql normal nao aparecem se nao contem fg_utilizados = 's' =/ Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Fevereiro 12, 2009 SELECT codigo, sum(fg_utilizado) from ( SELECT codigo as codigo, CASE fg_utilizado WHEN 'S' THEN 1 WHEN 'N' THEN 0 END as fg_utilizado FROM tabela_x ) as abc Group by codigo Teu mysql deve tah em GAY MODE pra reclamar tanto assim :P alem disso a consulta do If tah certa... ve se você nao tah digitando coisa errada ai Compartilhar este post Link para o post Compartilhar em outros sites
arglas 0 Denunciar post Postado Fevereiro 26, 2009 AGOOOOOOOOOORA SIM =) deu certo! coisa mais linda! Cara... meses atrás disso =P Abraço fera! Valeu mesmo!!! Compartilhar este post Link para o post Compartilhar em outros sites