probelema com Select, InnerJoin e GroupBy no mesmo SQL
olá pessoal, tenho o seguinte SQL inicial, com select e innerjoin.
até aí funciona legal.. depois precisarei colocar um where, blza...
Setei os tipos de parametro, e fui adicionar GroupBy e deu erro, gostaria de agrupar por IDSegurado e IDcompetencia sendo que também tem que possuir alguns campos de total, que depois eu faço. Minha pergunta é como poderia adicionar esse GroupBy dentro da minha TSQLQuery ?
Obrigado qm puder ajudar.
select hsrps_movimentacao.idmovimentacao, hsrps_movimentacao.idsegurado, hsrps_movimentacao.idcompetencia, hsrps_movimentacao.dtlancamento, hsrps_movimentacao.anoreferencia, hsrps_movimentacao.idtipolanc, hsrps_movimentacao.idtipofolha, hsrps_movimentacao.idorgaoorigem, hsrps_movimentacao.ctb_basesegurado, hsrps_movimentacao.ctb_baseempresa, hsrps_movimentacao.ctb_cont_nor_seg, hsrps_movimentacao.ctb_cont_esp_seg, hsrps_movimentacao.ctb_cont_out_seg, hsrps_movimentacao.ctb_cont_nor_emp, hsrps_movimentacao.ctb_cont_esp_emp, hsrps_movimentacao.ctb_cont_out_emp, hsrps_movimentacao.perc_nor_emp, hsrps_movimentacao.perc_esp_emp, hsrps_movimentacao.perc_out_emp, hsrps_movimentacao.perc_nor_seg, hsrps_movimentacao.perc_esp_seg, hsrps_movimentacao.perc_out_seg, hsrps_movimentacao.pag_fp_salbrutorec, hsrps_movimentacao.pag_fp_descconsignado, hsrps_movimentacao.pag_fp_saldoliqcred, hsrps_movimentacao.pag_vlr_provinativo, hsrps_movimentacao.pag_vlr_salariopens, hsrps_movimentacao.pag_vlr_provdiversos, hsrps_movimentacao.pag_vlr_salmaternidade, hsrps_movimentacao.pag_vlr_auxdoenca, hsrps_movimentacao.pag_vlr_abonofamilia, hsrps_movimentacao.pag_vlr_descfundo, hsrps_movimentacao.pag_vlr_recutilizado, hsrps_movimentacao.pag_baseprevidenciaria, hsrps_movimentacao.pag_percentual, hsrps_competencias.descricaocompet, hsrps_segurados.inscricaomunicipal, hscad_cadmunicipal.nome, hsrps_orgaos.nomeorgao, hsrps_situacaofuncional.descricao from hsrps_orgaos inner join hsrps_segurados on (hsrps_orgaos.idorgao = hsrps_segurados.idorgao) inner join hsrps_situacaofuncional on (hsrps_segurados.idsituacaofunc = hsrps_situacaofuncional.idsituacao) inner join hsrps_movimentacao on (hsrps_segurados.idsegurado = hsrps_movimentacao.idsegurado) inner join hsrps_competencias on (hsrps_movimentacao.idcompetencia = hsrps_competencias.idcompetencia) inner join hscad_cadmunicipal on (hsrps_segurados.inscricaomunicipal = hscad_cadmunicipal.inscricaomunicipal)
até aí funciona legal.. depois precisarei colocar um where, blza...
where (hsrps_movimentacao.idsegurado = :pIDSegurado) and (hsrps_movimentacao.anoreferencia = :pAnoRef)
Setei os tipos de parametro, e fui adicionar GroupBy e deu erro, gostaria de agrupar por IDSegurado e IDcompetencia sendo que também tem que possuir alguns campos de total, que depois eu faço. Minha pergunta é como poderia adicionar esse GroupBy dentro da minha TSQLQuery ?
Obrigado qm puder ajudar.
Gtts
Curtidas 0
Respostas
Powerlog Tecnologia
17/12/2007
Eu (na minha modesta opinião), em primeiro lugar, simplificaria a select assim:
Também foi trocada a ordem no ´from´, pois se vc começa com o movimento, o primeiro from é interessante que começe com ele (tunning de BD)
Só que para ter GROUP BY você precisaria ter sum, count de algum campo e o group precisa ser de TODOS OS OUTROS CAMPOS que constam na select.
Veja se te ajuda em algo :wink:
select m.idmovimentacao, m.idsegurado, m.idcompetencia, m.dtlancamento, m.anoreferencia, m.idtipolanc, m.idtipofolha, m.idorgaoorigem, m.ctb_basesegurado, m.ctb_baseempresa, m.ctb_cont_nor_seg, m.ctb_cont_esp_seg, m.ctb_cont_out_seg, m.ctb_cont_nor_emp, m.ctb_cont_esp_emp, m.ctb_cont_out_emp, m.perc_nor_emp, m.perc_esp_emp, m.perc_out_emp, m.perc_nor_seg, m.perc_esp_seg, m.perc_out_seg, m.pag_fp_salbrutorec, m.pag_fp_descconsignado, m.pag_fp_saldoliqcred, m.pag_vlr_provinativo, m.pag_vlr_salariopens, m.pag_vlr_provdiversos, m.pag_vlr_salmaternidade, m.pag_vlr_auxdoenca, m.pag_vlr_abonofamilia, m.pag_vlr_descfundo, m.pag_vlr_recutilizado, m.pag_baseprevidenciaria, m.pag_percentual, c.descricaocompet, s.inscricaomunicipal, u.nome, o.nomeorgao, f.descricao from hsrps_movimentacao m inner join hsrps_segurados s on m.idsegurado = s.idsegurado inner join hsrps_orgaos o on s.idorgao = o.idorgao inner join hsrps_situacaofuncional f on s.idsituacaofunc = f.idsituacao inner join hsrps_competencias c on m.idcompetencia = c.idcompetencia inner join hscad_cadmunicipal u on s.inscricaomunicipal = u.inscricaomunicipal where m.idsegurado = :pIDSegurado and m.anoreferencia = :pAnoRef
Também foi trocada a ordem no ´from´, pois se vc começa com o movimento, o primeiro from é interessante que começe com ele (tunning de BD)
Só que para ter GROUP BY você precisaria ter sum, count de algum campo e o group precisa ser de TODOS OS OUTROS CAMPOS que constam na select.
Veja se te ajuda em algo :wink:
GOSTEI 0