Select com IF
Pessoal estou com a seguinte situação:
Preciso lista a soma de proventos de cada Mês por local(departamento), com essa query consigo fazer isso, porém o problema é que a tabela R038HLO é de histórico, ou seja armazena registros de tranferencias de local, com isso para cada registro na tabela R038HLO o valor será repetido.
Preciso criar uma condição que verifique o local que o colaborador estava conforme o R044CAL.PerRef utilizando a R038HLO.DatAlt.
No exemplo abaixo estou listando a soma dos eventos do colaborador 1561 no periodo de Janeiro até Março
Como existe dois históricos na tabela R038HLO o os valores são apresentados duas vezes para cada Periodo
onde deveria ficar assim:
NumCad
NumLoc
PerRef
Soma_ValEve
1561
178
2010-01-01
1823,08
1561
331
2010-02-01
1823,08
1561
331
2010-03-01
1823,08
Obrigado.
Jorge Junior
Curtidas 0
Respostas
Emerson Nascimento
18/02/2011
creio ser problema no seu agrupamento.
poste a instrução SQL para que possamos analisa-la.
poste a instrução SQL para que possamos analisa-la.
GOSTEI 0
Jorge Junior
18/02/2011
é esse anexo.
SELECT r034fun.numcad, R038HLO.NumLoc, R044CAL.PerRef, SUM(R046VER.ValEve) AS Soma_ValEve
FROM R038HLO INNER JOIN
r034fun ON R038HLO.NumEmp = r034fun.numemp AND R038HLO.TipCol = r034fun.tipcol AND R038HLO.NumCad = r034fun.numcad INNER JOIN
R046VER ON r034fun.numemp = R046VER.NumEmp AND r034fun.tipcol = R046VER.TipCol AND r034fun.numcad = R046VER.NumCad INNER JOIN
R044CAL ON R046VER.NumEmp = R044CAL.NumEmp AND R046VER.CodCal = R044CAL.CodCal INNER JOIN
R008EVC ON R046VER.TabEve = R008EVC.CodTab AND R046VER.CodEve = R008EVC.CodEve
WHERE (r034fun.numcad = 1561) AND (R044CAL.PerRef BETWEEN '2010-01-01' AND '2010-03-01') AND (R008EVC.TipEve = 1) AND (R044CAL.TipCal = 11)
GROUP BY r034fun.numcad, R038HLO.NumLoc, R044CAL.PerRef
Sds.
GOSTEI 0