danielmi 0 Denunciar post Postado Fevereiro 15, 2017 Eis a seguinte query: Citar SELECT EQUIPAMENTO AS NOME2, CLINICA AS NOME, COUNT(DISTINCT CHAVE) AS QTD_ATND, COUNT(DISTINCT NREXAME) AS QTD_EXAMES, SUM(CHAVESERV) AS QTD_SERVICOS, SUM(VALORITEM) AS VALOR FROM ( SELECT AE.NREXAME, A.NRATENDIMENTO AS CHAVE, (SF_VALORITEM('S', 'SHSCSFSRCSRHSRFSU', ATNDS.FK_SERVICO, ATNDS.FK_CONVENIO, ATNDS.FK_CONVENIOPLANO, ATNDS.FK_DTHRINICIOATND, ATNDS.FK_PACIENTE, ATNDS.DTHRUTILIZACAO, ATNDS.SEQUENCIA, ATNDS.NrExame, ATNDS.QTD) + ATNDS.DESCACRES) AS VALORITEM, GE.NOME AS GRUPO, C.NOME AS CLINICA, EQP.NOME AS EQUIPAMENTO, GE.ID_GRUPOEQUIPAMENTO, A.DTHRINICIOATND, ATNDS.QTD AS CHAVESERV FROM ATENDIMENTOS A INNER JOIN ATENDIMENTOSEXAMES AE ON (A.DTHRINICIOATND = AE.FK_DTHRINICIOATND AND A.FK_PACIENTE = AE.FK_PACIENTE) INNER JOIN ATENDIMENTOSSERVICOS ATNDS ON (ATNDS.FK_DTHRINICIOATND = AE.FK_DTHRINICIOATND AND ATNDS.FK_PACIENTE = AE.FK_PACIENTE AND ATNDS.NREXAME = AE.NREXAME) INNER JOIN GRUPOSEQUIPAMENTOS GE ON (AE.FK_GRUPOEQUIPAMENTO = GE.ID_GRUPOEQUIPAMENTO) INNER JOIN CLINICAS C ON (GE.FK_CLINICA = C.ID_CLINICA) LEFT JOIN EQUIPAMENTOS EQP ON (AE.FK_EQUIPAMENTO = EQP.FK_RECURSO) WHERE ((AE.FK_EQUIPAMENTO = -1) OR (-1 = -1)) AND A.DOMNTIPOATND = 'X' AND ((-1 = -1) OR (AE.FK_GRUPOEQUIPAMENTO = -1)) AND ((C.ID_CLINICA = -1) OR (-1 = -1)) AND ((C.FK_INSTITUTO = 1) OR (1 = -1)) AND ((ATNDS.FK_CONVENIO = 23) OR (23 = -1)) AND ATNDS.FK_DTHRINICIOATND >= '9/2/2017' AND ATNDS.FK_DTHRINICIOATND <= '17/2/2017 23:59:59' UNION ALL SELECT AE.NREXAME, A.NRATENDIMENTO AS CHAVE, SF_VALORITEM('M', '', ATNDM.FK_MATERIAL, ATNDM.FK_CONVENIO, ATNDM.FK_CONVENIOPLANO, ATNDM.FK_DTHRINICIOATND, ATNDM.FK_PACIENTE, ATNDM.DTHRUTILIZACAO, 0, ATNDM.NrExame, ATNDM.QTD) AS VALORITEM, GE.NOME AS GRUPO, C.NOME AS CLINICA, EQP.NOME AS EQUIPAMENTO, GE.ID_GRUPOEQUIPAMENTO, A.DTHRINICIOATND, 0 AS CHAVESERV FROM ATENDIMENTOS A INNER JOIN ATENDIMENTOSEXAMES AE ON (A.DTHRINICIOATND = AE.FK_DTHRINICIOATND AND A.FK_PACIENTE = AE.FK_PACIENTE) INNER JOIN ATENDIMENTOSMATERIAIS ATNDM ON (ATNDM.FK_DTHRINICIOATND = AE.FK_DTHRINICIOATND AND ATNDM.FK_PACIENTE = AE.FK_PACIENTE AND ATNDM.NREXAME = AE.NREXAME) INNER JOIN GRUPOSEQUIPAMENTOS GE ON (AE.FK_GRUPOEQUIPAMENTO = GE.ID_GRUPOEQUIPAMENTO) INNER JOIN CLINICAS C ON (GE.FK_CLINICA = C.ID_CLINICA) LEFT JOIN EQUIPAMENTOS EQP ON (AE.FK_EQUIPAMENTO = EQP.FK_RECURSO) WHERE ((AE.FK_EQUIPAMENTO = -1) OR (-1 = -1)) AND A.DOMNTIPOATND = 'X' AND ((-1 = -1) OR (AE.FK_GRUPOEQUIPAMENTO = -1)) AND ((C.ID_CLINICA = -1) OR (-1 = -1)) AND ((C.FK_INSTITUTO = 1) OR (1 = -1)) AND ((ATNDM.FK_CONVENIO = 23) OR (23 = -1)) AND ATNDM.FK_DTHRINICIOATND >= '9/2/2017' AND ATNDM.FK_DTHRINICIOATND <= '17/2/2017 23:59:59' ) QRY1 GROUP BY CLINICA, EQUIPAMENTO ORDER BY CLINICA, EQUIPAMENTO Ele me retorna o seguinte resultado: Eu gostaria de saber como SOMAR os resultados, exemplo total_servicos e somar os valores 1+3+1+1 que no caso é a chave SUM(CHAVESERV) AS QTD_SERVICOS, ou seja queria saber como somar um RESULTADO já obtido da query. Tentei fazer da seguinte maneira, mas ele não reconhece a coluna já resultando de uma consulta: SELECT EQUIPAMENTO AS NOME2, CLINICA AS NOME, COUNT(DISTINCT CHAVE) AS QTD_ATND, COUNT(DISTINCT NREXAME) AS QTD_EXAMES, SUM(CHAVESERV) AS QTD_SERVICOS, SUM(VALORITEM) AS VALOR, SUM(QTD_SERVICOS) AS TOTAL_SERVICOS Agradeço muito a ajuda de todos! Compartilhar este post Link para o post Compartilhar em outros sites
Fabiano Abreu 22 Denunciar post Postado Fevereiro 15, 2017 Daniel, dá uma procurada por WITH ROLLUP Um exemplo: http://jquerydicas.blogspot.com.br/2015/01/mysql-sum-com-rollup-calcular-o.html _ _ Fabiano Abreu Papo SQL | Quiz na Web Compartilhar este post Link para o post Compartilhar em outros sites
danielmi 0 Denunciar post Postado Fevereiro 15, 2017 27 minutos atrás, Fabiano Abreu disse: Daniel, dá uma procurada por WITH ROLLUP Um exemplo: http://jquerydicas.blogspot.com.br/2015/01/mysql-sum-com-rollup-calcular-o.html Fabiano, obrigado pela dica, mas você poderia me mostrar como ficaria nesta query ? Estou testando aqui também mas por enquanto sem sucesso. Compartilhar este post Link para o post Compartilhar em outros sites
Fabiano Abreu 22 Denunciar post Postado Fevereiro 15, 2017 Daniel, caso tenha dificuldades com o rollup, sugiro fazer o seguinte, com o resultado do select, crie uma tabela, depois, é só totalizar os resultados com um select. Espero ter ajudado. _ _ Fabiano Abreu Papo SQL | Quiz na Web Compartilhar este post Link para o post Compartilhar em outros sites