1

次のクエリがあります。目的は、このクエリを日ごとにフィルター処理することです。

これと同じクエリを使用しますが、今は 1 か月です。実行する方法?

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)
4

1 に答える 1

0

最善の解決策は、日と月を含む時間ディメンションを作成することです。これは、上記で使用しているような動的 SQL にプラグインするのは簡単ではないため、代わりに回避策を試すことができます。

Report Studio の回避策は、年と月の列を作成し、それらをグループ化することです。

年の場合: extract(year, [datefieldhere])

月の場合: extract(month, [datefieldhere])

于 2014-11-20T21:44:43.437 に答える