[firebase-br] Ajuda com SELECT
Hélio Oliveira
hpensador em gmail.com
Seg Maio 16 20:12:41 -03 2016
Boa noite Colegas!
No select abaixo a quantidade (QTDE) não esta sendo retornada
corretamente, isto se dá pelo fato da tabela FOLHA ter 1 ou N registros
por SEQUENCIA enquanto a tabela FOLHA_BASE terá apenas um registro por
SEQUENCIA, tentei usar um subselect na junção e não conseguir obter
sucesso. Algum colega poderia me dá alguma dica...
SELECT X.COD_DIVISAO,
COUNT(X.MATRICULA) AS QTDE,
SUM(IIF(B.INSS = 'S', X.BC_INSS, 0)) AS BASE_INSS,
SUM(IIF(B.IRRF = 'S', X.BC_IRRF, 0)) AS BASE_IRRF,
SUM(IIF(B.PREV_PROPRIA = 'S', X.BC_PREV_PROPRIA, 0)) AS
BASE_PREV_PROPRIA,
SUM(IIF(B.FGTS = 'S', X.BC_FGTS, 0)) AS BASE_FGTS,
SUM(IIF(A.COD_EVENTO = 2 or A.COD_EVENTO = 2, A.VALOR, 0)) AS
SALARIO_FAMILIA,
((SUM(IIF(B.INSS = 'S', X.BC_INSS, 0)) *
(SELECT (Z.PERC_INSS + (SELECT PERC_SAT * PERC_FAP
FROM TABELA_INSS
WHERE MES = X.MES AND ANO = X.ANO))/100
FROM PARAMETRO Z
WHERE Z.COD_EMPRESA = X.COD_EMPRESA)) +
(SUM(IIF(A.COD_EVENTO = 43 or
A.COD_EVENTO = 44 or
A.COD_EVENTO = 45, A.VALOR, 0)))) AS VALOR_DEV_INSS,
((SUM(IIF(B.PREV_PROPRIA = 'S', X.BC_PREV_PROPRIA, 0)) *
(SELECT Z.PERC_PREV_PROPRIA/100
FROM PARAMETRO Z
WHERE Z.COD_EMPRESA = X.COD_EMPRESA)) +
(SUM(IIF(A.COD_EVENTO = 49, A.VALOR, 0)))) AS VALOR_DEV_PP
FROM FOLHA A
JOIN FOLHA_BASE X ON (A.MES = X.MES
AND A.ANO = X.ANO
AND A.SEQUENCIA = X.SEQUENCIA
AND A.MATRICULA = X.MATRICULA
AND A.COD_EMPRESA = X.COD_EMPRESA)
JOIN EVENTO B ON (B.COD_EVENTO = A.COD_EVENTO
AND B.COD_EMPRESA = X.COD_EMPRESA)
JOIN FUNCIONARIO C ON (C.MATRICULA = A.MATRICULA
AND C.COD_EMPRESA = X.COD_EMPRESA)
JOIN DIVISAO D ON (D.COD_DIVISAO = X.COD_DIVISAO
AND D.COD_EMPRESA = X.COD_EMPRESA)
JOIN DEPARTAMENTO E ON (E.COD_DEPARTAMENTO = D.COD_DEPARTAMENTO
AND E.COD_EMPRESA = X.COD_EMPRESA)
JOIN SECRETARIA F ON (F.COD_SECRETARIA = E.COD_SECRETARIA
AND F.COD_EMPRESA = X.COD_EMPRESA)
JOIN CARGO G ON (G.COD_CARGO = X.COD_CARGO
AND G.COD_EMPRESA = X.COD_EMPRESA)
WHERE A.VALOR > 0
GROUP BY X.COD_DIVISAO, X.COD_EMPRESA, X.MES, X.ANO
Mais detalhes sobre a lista de discussão lista