Fórum problemas com o Group by #592758
26/04/2018
0
select nome.cdnomeacao, substring(replace(str(nomea.CdFuncionario,9 ) + str(func.DVFuncionario, 2), '''' '''', ''''0''''),1,11) as CPF,
nmfuncionario as [Nome servidor], valor [Base de calculo]
from TNomeacoes as nomea
left join Funcio as func on nomea.CdEmpresa = func.CdEmpresa and nomea.CdFuncionario = func.CdFuncionario
left join Car as car on nomea.CdEmpresa = car.CdEmpresa and nomea.CdCargo = car.CdCargo
left join Lot as lota on nomea.CdEmpresa = lota.CdEmpresa and nomea.CdLotacao = lota.CdLotacao
left join Financeira as finan on nomea.CdEmpresa = finan.CdEmpresa and nomea.CdNomeacao = finan.CdNomeacao
where nomea.CdNomeacao in (select CdNomeacao
from Financeira
where Periodo = 201803 and CdEvento = 1)and TpCargo = ''''T'''' and Situacao != ''''D''''
and CdEstrutura = 1 and Periodo = 201803 and finan.CdEvento = 1
group by nome.cdnomeacao, nomea.CdFuncionario , func.DVFuncionario , NmFuncionario, Valor
having (count(TpCargo) >= 2 )
left join Financeira as finan on nomea.CdEmpresa = finan.CdEmpresa and nomea.CdNomeacao = finan.CdNomeacao
where nomea.CdNomeacao in (select CdNomeacao
from TFFinanceira
where Periodo = 201803 and CdEvento = 1)and TpCargo = ''''T'''' and Situacao != ''''D''''
and CdEstrutura = 1 and Periodo = 201803 and finan.CdEvento = 1
group by TpCargo, nomea.CdFuncionario , func.DVFuncionario , NmFuncionario, Valor
having (count(TpCargo) >= 2 )
Demetrio Lopes
Curtir tópico
+ 0Post mais votado
30/04/2018
Vou ver se consigo te ajudar, vamos la:
Primeira coisa que eu notei, no teu WHERE tu coloca
nomea.CdNomeacao in (select CdNomeacaofrom Financeirawhere Periodo = 201803 and CdEvento = 1)
e logo depois, tem umas condições a mais que são:
and TpCargo = ''''T'''' and Situacao != ''''D'''' and CdEstrutura = 1 and Periodo = 201803 and finan.CdEvento = 1
só que não colocou de qual tabela pertence os campos "TpCargo", "Situacao", "CdEstrutura" e "Periodo". Acredito que isso esteja trancando sua consulta.
Outra coisa, em SQLServer, pra que um campo entre em GROUP BY ele deve estar listado nos campos a serem exibidos.
E assim, acho que você deve revisar essa query, porque tu ta com um WHERE dentro de um WHERE, tu fechou teu "in" nessa parte:
from Financeira where Periodo = 201803 and CdEvento = 1)
e continua a query, pelo que eu notei, como se ainda estivesse aberta. Depois posta se conseguiu. ;D
Alex William
Gostei + 3
Mais Posts
30/04/2018
Demetrio Lopes
Gostei + 1
03/05/2018
Demetrio Lopes
quanto ao ultimo where que você havia falado, realmente foi uma erro na hora de copiar o select. enfim!! eu transformei esse select que publiquei em um subselect. E deu tudo certo o.O! mas até então nao sei qual é o problema desse select que publiquei
OBRIGADO
Gostei + 0
04/05/2018
Emerson Nascimento
select nomea.cdnomeacao, substring(replace(str(nomea.CdFuncionario,9 ) + str(func.DVFuncionario, 2), ' ', '0'),1,11) as CPF, func.nmfuncionario as [Nome servidor], sum(func.valor) [Base de calculo] from TNomeacoes as nomea left join Funcio as func on func.CdEmpresa = nomea.CdEmpresa and func.CdFuncionario = nomea.CdFuncionario and func.Situacao != 'D' left join Car on car.CdEmpresa = nomea.CdEmpresa and car.CdCargo = nomea.CdCargo and car.TpCargo = 'T' left join Lot as lota on lota.CdEmpresa = nomea.CdEmpresa and lota.CdLotacao = nomea.CdLotacao left join Financeira as finan on finan.CdEmpresa = nomea.CdEmpresa and finan.CdNomeacao = nomea.CdNomeacao and finan.Periodo = 201803 and finan.CdEvento = 1 and finan.CdEstrutura = 1 group by nomea.cdnomeacao, nomea.CdFuncionario, func.DVFuncionario, func.NmFuncionario having count(*) >= 2
Gostei + 1
04/05/2018
Demetrio Lopes
Gostei + 0
07/05/2018
Demetrio Lopes
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)