Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia Pessoal.
Veja se vcs podem me ajudar:
Preciso fazer um select no mysql onde ele traga um valor igual ao exemplo abaixo:
Na semana, a empresa recebeu 120 faturas de clientes, preciso fazer um relatorio que me mostre da seguinte forma:
----------------
Faturas Recebidas: R$ 1200,00 (120 Faturas).
-------------------
Vou tentar ser mais claro: Preciso que ele some a quantidade de faturas que foi recebida, some também o valor delas e me mostre da forma acima, agrupando. Hoje o sistema está mostrando as 120 faturas em 120 linhas, preciso que agrupe e mostre a quantidade de faturas e o valor delas somado!
Esqueci completamente como fazer.
Muito Obrigado,
Tenham uma ótima semana!
Entendi marcos, mas se eu usar a cláusula Group By ele vai me mostrar o total agrupando com o campo faturas, é exatamente isso que eu tentei fazer, porém ele não me retorna a qtdade de faturas que ele somou, entendeu?
Olha minha expressão como está:
select tto, SUM(amount) from transactions where tto=102 group by tto
O Resultado:
tto SUM(amount)
102 714.00
Neste caso eu não sei quantas faturas ele somou.
Use o count na coluna tto
select count (tto) as total , SUM(amount) as recebidas from transactions where tto=102 group by tto
Poouxa vida... funcionou.. não estava lembrando da função Count... Muito Obrigado Marcos!
Ótima semana pra vc!
Thiago tenta:
> SELECT `tto`, SUM(`amount`) as total, count(amount) as faturas from transactions where `tto`=102;
Vai imprimir o valor total da faturas e a quantidade que foi somada.
Surgiu outro problema, ou melhor, outra particularidade que esqueci de comentar.
Teria que mostrar a data da ocorrência também.
Por exemplo:
DATA QDADE VALOR TOTAL
21/12/2013 05 R$ 1200.00
23/12/2013 02 R$ 200.00
29/12/2013 10 R$ 3200.00
Como eu posso fazer isso? Lembrando que esta data é relativo ao mês corrente, e não todas as faturas onde tto=102;
Deu para entender?
Tenta complementar seu sql com isso :
select distinct MONTH('2014-02-25') as data,count (tto) as total , SUM(amount) as recebidas
from transactions
where tto=102 group by tto
Funcionou, mas ele mostra a qtdade de datas localizadas, teria que mostrar a data segue abaixo
------------------------------------------
data total recebidas
2 5 874.00
-------------------------------------------
Neste caso teria que ficar assim:
-------------------------------------------
data total recebidas
2014-02-25 5 874.00
-------------------------------------------
NOW() = data corrente
%m = mês no formato mm%Y = mês no formato 2013
select distinct campo_data,count (tto) as total , SUM(amount) as recebidas
from transactions
where tto=102 and DATE_FORMAT(campo_data,'%m') =MONTH(NOW())
group by tto
Documentação http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
Perfeitamente maravilhoso! rsrs
Muito Obrigado mais uma vez Marcos Xavier!
Utilize a função sum e a cláusula group by do SQL.