AJUDA NA CLAUSULA SQL NO MYSQL
tenho a seguinte clausula
SELECT MONTH(tb_agenda.inicio) MONTH, COUNT(tb_agenda.id) as Agendamentos,
SUM(CASE tb_agenda.'Status' when [ô]Agendado[ô] THEN 1 ELSE NULL END) Agendado,
SUM(CASE tb_agenda.'Status' when [ô]Atendido[ô] THEN 1 ELSE NULL END) Atendido,
SUM(CASE tb_agenda.'Status' when [ô]Cancelado[ô] THEN 1 ELSE NULL END) Cancelado
from(tb_agenda)
left join group by MONTH(tb_agenda.inicio)
que retorna...
MES, Total de Agendamentos, Total de Atendimentos, TOtal de Cancelados..
01,44,43,1
até ai sussa... mas tenho a tabela detalhes da agenda... que tem os valores... e eu queria que retornasse assim.
MES, Total de Agendamentos, Total de Atendimentos, TOtal de Cancelados, Valor TOTAL
01,44,43,1,R$500
como faço isso? a outra tabela se chama tb_detalhes_agenda,
nela tenho um campo chamado id_tb_agenda, um campo QTD e outro VaLOR preciso multiplicar os dois para dar o valor daquele serviço e fazer um sum no resultado para todos os outros que tiverem... tentei tentei tentei... e até agora nao consegui isso :( alguém consegue me ajudar?
obrigado desde já
SELECT MONTH(tb_agenda.inicio) MONTH, COUNT(tb_agenda.id) as Agendamentos,
SUM(CASE tb_agenda.'Status' when [ô]Agendado[ô] THEN 1 ELSE NULL END) Agendado,
SUM(CASE tb_agenda.'Status' when [ô]Atendido[ô] THEN 1 ELSE NULL END) Atendido,
SUM(CASE tb_agenda.'Status' when [ô]Cancelado[ô] THEN 1 ELSE NULL END) Cancelado
from(tb_agenda)
left join group by MONTH(tb_agenda.inicio)
que retorna...
MES, Total de Agendamentos, Total de Atendimentos, TOtal de Cancelados..
01,44,43,1
até ai sussa... mas tenho a tabela detalhes da agenda... que tem os valores... e eu queria que retornasse assim.
MES, Total de Agendamentos, Total de Atendimentos, TOtal de Cancelados, Valor TOTAL
01,44,43,1,R$500
como faço isso? a outra tabela se chama tb_detalhes_agenda,
nela tenho um campo chamado id_tb_agenda, um campo QTD e outro VaLOR preciso multiplicar os dois para dar o valor daquele serviço e fazer um sum no resultado para todos os outros que tiverem... tentei tentei tentei... e até agora nao consegui isso :( alguém consegue me ajudar?
obrigado desde já
SELECT MONTH(tb_agenda.inicio) MONTH, COUNT(tb_agenda.id) as Agendamentos,
SUM(CASE tb_agenda.'Status' when [ô]Agendado[ô] THEN 1 ELSE NULL END) Agendado,
SUM(CASE tb_agenda.'Status' when [ô]Atendido[ô] THEN 1 ELSE NULL END) Atendido,
SUM(CASE tb_agenda.'Status' when [ô]Cancelado[ô] THEN 1 ELSE NULL END) Cancelado,
(SELECT SUM(QTD*VALOR) FROM tb_detalhes_agenda where id_tb_agenda=tb_agenda.id) as [ô]VALOR TOTAL[ô]
from(tb_agenda)
left join group by MONTH(tb_agenda.inicio)
ja tentou assim... ve ai se da.?
qualquer coisa post novamente
SUM(CASE tb_agenda.'Status' when [ô]Agendado[ô] THEN 1 ELSE NULL END) Agendado,
SUM(CASE tb_agenda.'Status' when [ô]Atendido[ô] THEN 1 ELSE NULL END) Atendido,
SUM(CASE tb_agenda.'Status' when [ô]Cancelado[ô] THEN 1 ELSE NULL END) Cancelado,
(SELECT SUM(QTD*VALOR) FROM tb_detalhes_agenda where id_tb_agenda=tb_agenda.id) as [ô]VALOR TOTAL[ô]
from(tb_agenda)
left join group by MONTH(tb_agenda.inicio)
ja tentou assim... ve ai se da.?
qualquer coisa post novamente
ROBSON220BASS Obrigado, fiz umas correções mas seu código está perfeito.
não sabia que podiamos fazer outra consulta dentro de uma consulta...
show de bola
obrigado
não sabia que podiamos fazer outra consulta dentro de uma consulta...
show de bola
obrigado
ROBSON220BASS... comemorei mto cedo.
os resultados estão:
Month, agendamentos, agendado, atendido, cancelado, valor total
3, 44, 1, 43, Null, Null
e eu testei a sintase sql separado... ela está funcionando... mas junto... nao tá somando não...
:(
os resultados estão:
Month, agendamentos, agendado, atendido, cancelado, valor total
3, 44, 1, 43, Null, Null
e eu testei a sintase sql separado... ela está funcionando... mas junto... nao tá somando não...
:(
pronto agora... sim
SELECT MONTH(tb_agenda.inicio) MONTH, COUNT(tb_agenda.id) as Agendamentos,
SUM(CASE tb_agenda.'Status' when [ô]Agendado[ô] THEN 1 ELSE NULL END) Agendado,
SUM(CASE tb_agenda.'Status' when [ô]Atendido[ô] THEN 1 ELSE NULL END) Atendido,
SUM(CASE tb_agenda.'Status' when [ô]Cancelado[ô] THEN 1 ELSE NULL END) Cancelado,
SUM((SELECT SUM(qtd*preco) FROM tb_detalhes_agenda where id_tb_agenda=tb_agenda.id and tipo = [ô]0[ô] AND
preco > [ô]0[ô] AND qtd > [ô]0[ô])) as [ô]VALOR TOTAL[ô]
from(tb_agenda)
group by MONTH(tb_agenda.inicio)
faltou fazer um sum de tudo.... que tá no select tb!
SELECT MONTH(tb_agenda.inicio) MONTH, COUNT(tb_agenda.id) as Agendamentos,
SUM(CASE tb_agenda.'Status' when [ô]Agendado[ô] THEN 1 ELSE NULL END) Agendado,
SUM(CASE tb_agenda.'Status' when [ô]Atendido[ô] THEN 1 ELSE NULL END) Atendido,
SUM(CASE tb_agenda.'Status' when [ô]Cancelado[ô] THEN 1 ELSE NULL END) Cancelado,
SUM((SELECT SUM(qtd*preco) FROM tb_detalhes_agenda where id_tb_agenda=tb_agenda.id and tipo = [ô]0[ô] AND
preco > [ô]0[ô] AND qtd > [ô]0[ô])) as [ô]VALOR TOTAL[ô]
from(tb_agenda)
group by MONTH(tb_agenda.inicio)
faltou fazer um sum de tudo.... que tá no select tb!
Tópico encerrado , respostas não são mais permitidas