Ir para conteúdo
Fórum Script Brasil
  • 0

Erro na Sentença Subquery: Multiple columns are specified in an aggregated expression containing an outer reference. If an expression being aggregated contains an outer reference, then that outer reference must be the only column referenced in the express


Oliver CNP

Pergunta

Bom dia, 

Estou apanhando desde ontem em uma sentença Quando eu faço o select fora da sentença sozinho, os dados são demonstrados corretamente, porém, na subquery me ocorre esse erro:

Multiple columns are specified in an aggregated expression containing an outer reference. If an expression being aggregated contains an outer reference, then outer reference must be the only column referenced in the expression.

Gostaria de uma ajuda por gentileza, não tenho mais o que fazer. Sublinhei onde ocorre o erro.

Segue o Select:

 

SELECT

   DISTINCT FUN.IDFUNCIONARIO, FER.CHAPA, FER.INICIOPERAQUIS, FER.FIMPERAQUIS, 

   CASE WHEN FU.CODSITUACAO IN ('A', 'E') AND FER.PERIODOABERTO = 1 THEN (DATEDIFF(DAY, FER.INICIOPERAQUIS,GETDATE())/12) - (SELECT SUM(CASE WHEN PPP.NRODIASFERIAS IS NOT NULL AND FER.PERIODOABERTO = 1 THEN PPP.NRODIASFERIAS ELSE 0 END) FROM PFUFERIASPER PPP WHERE FER.CODCOLIGADA = PPP.CODCOLIGADA AND FER.CHAPA = PPP.CHAPA AND PPP.FIMPERAQUIS = FER.FIMPERAQUIS GROUP BY PPP.CHAPA) WHEN FU.CODSITUACAO IN ('C', 'D') THEN 0 ELSE FER.SALDO END VL_SALDO_FERIAS,

FROM

PFUFERIAS FER

   LEFT OUTER JOIN FOL_FUNCIONARIOS FUN ON FUN.CHAPA = FER.CHAPA

   LEFT OUTER JOIN PFUFERIASPER PER ON PER.CODCOLIGADA = FER CODCOLIGADA AND PER.CHAPA = FER.CHAPA AND PER.FIMPERAQUIS = FER.FIMPERAQUIS

   LEFT OUTER JOIN PFUNC FU ON FU.CODCOLIGADA = FER.CODCOLIGADA AND FU.CHAPA = FER.CHAPA

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

No segundo CASE tira o "AND FER.PERIODOABERTO = 1"

SELECT DISTINCT
	FUN.IDFUNCIONARIO,
	FER.CHAPA,
	FER.INICIOPERAQUIS,
	FER.FIMPERAQUIS, 
	CASE
		WHEN FU.CODSITUACAO IN ('A', 'E') AND FER.PERIODOABERTO = 1
			THEN (DATEDIFF(DAY, FER.INICIOPERAQUIS,GETDATE())/12)
				- 
			(SELECT
				SUM(
					CASE
					WHEN PPP.NRODIASFERIAS IS NOT NULL THEN PPP.NRODIASFERIAS
					ELSE 0 END
				)
			FROM PFUFERIASPER PPP
			WHERE FER.CODCOLIGADA = PPP.CODCOLIGADA
			AND FER.CHAPA = PPP.CHAPA
			AND PPP.FIMPERAQUIS = FER.FIMPERAQUIS
			GROUP BY PPP.CHAPA)
		WHEN FU.CODSITUACAO IN ('C', 'D') THEN 0
		ELSE FER.SALDO
	END AS VL_SALDO_FERIAS,
FROM PFUFERIAS FER
LEFT OUTER JOIN FOL_FUNCIONARIOS FUN ON FUN.CHAPA = FER.CHAPA
LEFT OUTER JOIN PFUFERIASPER PER ON PER.CODCOLIGADA = FER.CODCOLIGADA AND PER.CHAPA = FER.CHAPA AND PER.FIMPERAQUIS = FER.FIMPERAQUIS
LEFT OUTER JOIN PFUNC FU ON FU.CODCOLIGADA = FER.CODCOLIGADA AND FU.CHAPA = FER.CHAPA

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...