Mehow 1 Denunciar post Postado Junho 25, 2010 Tenho que fazer um relatório porém não estou sabendo como fazer vários COUNTs e cada um tem uma condição Tem que ser assim mes----qtd_cheques----cheques_devolvidos----valor_duplicatas----dizimados JAN-----------100 --------------5000.00---------------2000.00-----------1200.00 vai contar a quantidade de cheques, somar os devolvidos, somar duplicatas e somar dizimados esse dados estão na minha tabela lote_itens, o cheque só é devolvido quando o campo statusdevolvido for = "S", só é duplicata se o numero do banco for = "010" e dizimados se o campo dizimado for = "S" pro enquanto só consegui somar todos os cheques do mes e contar os cheques nesse SELECT MONTH(l.vencimento) as mes, SUM(l.valor) as total_chq, COUNT(*) as qtd_chq FROM lote_itens l WHERE DATE_FORMAT(vencimento, '%m') = '06' ORDER BY l.vencimento ASC é possível fazer um select para exibir os dados da maneira que mostrei?? quais funções devo usar para contar utilizando condições? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Junho 26, 2010 O uso da instrução CASE deve resolver este problema, pesquise por exemplos aqui neste site ou na documentação do BD. Compartilhar este post Link para o post Compartilhar em outros sites
Mehow 1 Denunciar post Postado Junho 28, 2010 O uso da instrução CASE deve resolver este problema, pesquise por exemplos aqui neste site ou na documentação do BD. consegui contar os cheques devolvidos e duplicatas usando CASE, agora estou com dificuldade de somar um campo, a minha consulta está assim: SELECT l.id_lote,l.emissao,l.vencimento,MONTH(l.vencimento) as mes, SUM(l.valor) as total_chq, COUNT(*) as qtd_chq, COUNT(CASE WHEN l.statusdevolvido = 'S' THEN 1 ELSE NULL END) as devolvidos, COUNT(CASE WHEN nro_banco = '010' THEN 1 ELSE NULL END)as duplicatas FROM lote_itens l WHERE DATE_FORMAT(l.vencimento, '%m') = '06' ORDER BY l.vencimento ASC se eu colocar SUM(CASE WHEN nro_banco = '010' THEN 1 ELSE NULL END)as valor_duplicata só conta o numero de registros, não estou conseguindo somar o campo valor onde o numero do banco for = '010' Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Junho 28, 2010 SUM(CASE WHEN nro_banco = '010' THEN valor_duplicata ELSE 0 END)as valor_duplicata Compartilhar este post Link para o post Compartilhar em outros sites
Mehow 1 Denunciar post Postado Junho 28, 2010 aah consegui, burrice a minha ¬¬ ficou assim SUM(CASE WHEN nro_banco = '010' THEN l.valor ELSE NULL END)as valor_duplicatas agora chequei na parte de calcular os juros, to achando que vo tentar fazer todos esses calculos na aplicação ao invés do BD valew Motta Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Junho 28, 2010 Em geral usar FUNCTIONS ajuda nestes casos. Compartilhar este post Link para o post Compartilhar em outros sites
wsouza3 0 Denunciar post Postado Outubro 27, 2014 Dica esplendida, me ajudou muiiiiito! Compartilhar este post Link para o post Compartilhar em outros sites