我有以下查询; 目标是按天过滤此查询。
我将使用相同的查询,但现在一个月。怎么办?
WITH DATAS(DATA_CALC) AS(
SELECT DATE(#prompt('DataIni')#) AS DATA_CALC FROM SYSIBM.SYSDUMMY1
UNION ALL
SELECT DATA_CALC + 1 DAY FROM DATAS WHERE DATA_CALC < DATE(#prompt('DataFim')#)
)
/* ABERTOS */
SELECT COUNT(*) AS QUANTIDADE, 'ABERTOS' AS TIPO, 1 AS NUM_LINHA, DATE(TRUNC(SOL.DATA_ABERTURA_SOLICITACAO)) AS DATA
FROM VW_SOLICITACAO_DETALHE SOL
INNER JOIN SOLICITACAO SOL_TAB ON (SOL_TAB.ID_SOLICITACAO = SOL.ID_SOLICITACAO)
WHERE SOL.COD_TIPO_SERVICO IN ('MC','OP','SA')
AND SOL_TAB.ID_AREA_COLABORADOR IN (#promptmany('IDArea')#)
AND TRUNC(SOL.DATA_ABERTURA_SOLICITACAO) >= to_date('2014-11-18','YYYY-MM-DD')
AND TRUNC(SOL.DATA_ABERTURA_SOLICITACAO) <= #prompt('DataFim')#
AND ('TODOS' IN (#promptmany('Sistema')#) OR SOL.COD_PRODUTO IN (#promptmany('Sistema')#))
AND DSC_SITUACAO_SOLICITACAO NOT IN ('Desenvolvimento Cancelado')
AND SOL.COD_SOLICITACAO NOT LIKE 'SA%'
GROUP BY TRUNC(SOL.DATA_ABERTURA_SOLICITACAO)
答案 0 :(得分:0)
最佳解决方案是create a Time dimension,包括日期和月份。像上面使用的那样插入动态SQL并不容易,所以你可以尝试解决这个问题。
报告工作室的工作原理是创建年份和月份列,并对其进行分组:
年份: 提取物(年,[datefieldhere])
月份: 提取物(月,[datefieldhere])