Estou com uma dúvida aqui meio cabeluda e preciso de uma ajudinha. Tenho uma tabela (TB_RESULTADO_INDICADOR) contendo os seguintes campos:
cd_centro (codigo da empresa)
cd_indicador_performance (código da linha de produção)
cd_periodo (1 para dia, 2 para mês e 3 para ano)
tp_dado (real ou meta ou meta acumulada ou real acumulado)
dt_resultado (data do resultado)
vl_indicador (resultado em si, valor numérico)
Preciso a apresentar os dados de produção de um processo produtivo em um relatório (Crystal Reports) da seguinte forma:
| Dia | mês |Plano |
|cd_indicador|Meta|Real|Var|IC%|Meta|Real|Var|IC%|Mensal|
onde os parâmetro de consulta são o código da empresa e a data. IC% é o índice de consecução. Para uma determinada data,
são apresentadas a meta do dia, o valor real produzido, a variação (real-meta) e o IC, bem como (apartir do dia 1º do mês)
a meta acumulada até o dia, a produção real até o dia e o IC. Por último é apresentado o plano para o mês.
O select utilizado (que retorna somente uma linha), é o seguinte:
SELECT A.CD_INDICADOR_PERFORMANCE, A.VL_INDICADOR AS META, B.VL_INDICADOR AS REAL,
(B.VL_INDICADOR - A.VL_INDICADOR) AS VARDIA,
ROUND(DECODE(NVL(A.VL_INDICADOR, 0), 0, 0, NVL(B.VL_INDICADOR, 0)/A.VL_INDICADOR * 100), 1) AS ICDIA,
C.VL_INDICADOR AS ACUMMETA, D.VL_INDICADOR AS ACUMREAL,
(D.VL_INDICADOR - C.VL_INDICADOR) AS VARACUM,
ROUND(DECODE(NVL(C.VL_INDICADOR, 0), 0, 0, NVL(D.VL_INDICADOR, 0)/C.VL_INDICADOR * 100), 1) AS ICACUM,
E.VL_INDICADOR AS PLANO
FROM TB_RESULTADO_INDICADOR A, TB_RESULTADO_INDICADOR B, TB_RESULTADO_INDICADOR C, TB_RESULTADO_INDICADOR D, TB_RESULTADO_INDICADOR E
WHERE A.CD_CENTRO = {?empresa_filtro}
AND A.CD_INDICADOR_PERFORMANCE = 552
AND A.CD_PERIODO = 1
AND A.TP_DADO = 'META'
AND A.DT_RESULTADO = {?data}
AND B.CD_CENTRO = {?empresa_filtro}
AND B.CD_INDICADOR_PERFORMANCE = 552
AND B.CD_PERIODO = 1
AND B.TP_DADO = 'REAL'
AND B.DT_RESULTADO = {?data}
AND C.CD_CENTRO = {?empresa_filtro}
AND C.CD_INDICADOR_PERFORMANCE = 552
AND C.CD_PERIODO = 2
AND C.TP_DADO = 'ACUM META'
AND C.DT_RESULTADO = {?data}
AND D.CD_CENTRO = {?empresa_filtro}
AND D.CD_INDICADOR_PERFORMANCE = 552
AND D.CD_PERIODO = 2
AND D.TP_DADO = 'ACUM REAL'
AND D.DT_RESULTADO = {?data}
AND E.CD_CENTRO = {?empresa_filtro}
AND E.CD_INDICADOR_PERFORMANCE = 552
AND E.CD_PERIODO = 2
AND E.TP_DADO = 'META'
AND E.DT_RESULTADO = LAST_DAY({?data})
aparece em branco, mesmo existindo o valor real produzido. O que fazer para que que os valores existentes na tabela
sejam disponibilizados, mesmo quando falte algum dado??
Não sei se fui suficientemente claro na explicação do problema, mas desde já, agradeço a atenção.[/img]