我正在使用Cognos Reporting Studio。我要做的是显示一系列日期范围内的项目。我将显示所选年份和前两年的计数。但是,第四个计数显示为空白年份。现在我开始认为这是因为当时的时间与日期有关。因此,当最大日期值为2013年3月1日上午12:00:00时,则2013年3月1日06:17:00 AM超出该范围。我需要从日期中删除时间。这是我目前正在使用的:
Case
when [GCR_RECEIVED_DT] between cast(substring ([FromDate],1,10),date)
and _add_years(cast(substring ([ToDate],1,10),date),-2)
then extract(year, _add_years([ToDate],-2) )
when [GCR_RECEIVED_DT] between _add_years(cast(substring ([FromDate],1,10),date),1)
and _add_years(cast(substring ([ToDate],1,10),date),-1)
then extract(year,_add_years([ToDate],-1))
when [GCR_RECEIVED_DT] between _add_years(cast(substring ([FromDate],1,10),date),2)
and cast(substring ([ToDate],1,10),date)
then extract(year,[ToDate])
end
有人告诉我应该使用强制转换和子串。但我一直收到这个错误:
执行操作'sqlPrepareWithOptions'时发生错误 状态= ' - 9'。
伴随着这条大信息。我相信我不必包括所有这些,但我会去。
UDA-SQL-0107操作期间发生了一般性异常 “准备”.ORA-00904:“SUBSTRING”:无效标识符RSV-SRV-0042 追溯:RSReportService.cpp(722):QFException:CCL_CAUGHT: RSReportService :: process()RSReportServiceMethod.cpp(263):QFException: CCL_RETHROW:RSReportServiceMethod :: process(): asynchWait_RequestRSASyncExecutionThread.cpp(808):QFException: RSASyncExecutionThread :: checkExceptionRSASyncExecutionThread.cpp(260): QFException:CCL_CAUGHT:RSASyncExecutionThread :: runImpl(): promptPagingForward_RequestRSASyncExecutionThread.cpp(864): QFException:CCL_RETHROW:RSASyncExecutionThread :: processCommand(): promptPagingForward_RequestExecution / RSRenderExecution.cpp(670): QFException:CCL_RETHROW: RSRenderExecution :: executeAssembly / RSDocAssemblyDispatch.cpp(291): QFException:CCL_RETHROW: RSDocAssemblyDispatch :: dispatchAssemblyAssembly / RSLayoutAssembly.cpp(79): QFException:CCL_RETHROW: RSLayoutAssembly :: assembleAssembly / RSDocAssemblyDispatch.cpp(358): QFException:CCL_RETHROW: RSDocAssemblyDispatch :: dispatchChildrenAssemblyForwardAssembly / RSReportPagesAssembly.cpp(179): QFException:CCL_RETHROW: RSReportPagesAssembly :: assembleAssembly / RSDocAssemblyDispatch.cpp(308): QFException:CCL_RETHROW: RSDocAssemblyDispatch :: dispatchAssemblyAssembly / RSPageAssembly.cpp(303): QFException:CCL_RETHROW: RSPageAssembly :: assembleAssembly / RSDocAssemblyDispatch.cpp(308): QFException:CCL_RETHROW: RSDocAssemblyDispatch :: dispatchAssemblyAssembly / RSTableRowAssembly.cpp(177): QFException:CCL_RETHROW: RSTableRowAssembly :: assembleAssembly / RSDocAssemblyDispatch.cpp(308): QFException:CCL_RETHROW: RSDocAssemblyDispatch :: dispatchAssemblyAssembly / RSTableCellAssembly.cpp(137): QFException:CCL_RETHROW: RSTableCellAssembly :: assembleAssembly / RSDocAssemblyDispatch.cpp(358): QFException:CCL_RETHROW: RSDocAssemblyDispatch :: dispatchChildrenAssemblyForwardAssembly / RSTableAssembly.cpp(119): QFException:CCL_RETHROW: RSTableAssembly :: assembleAssembly / RSDocAssemblyDispatch.cpp(358): QFException:CCL_RETHROW: RSDocAssemblyDispatch :: dispatchChildrenAssemblyForwardAssembly / RSTableRowAssembly.cpp(177): QFException:CCL_RETHROW: RSTableRowAssembly :: assembleAssembly / RSDocAssemblyDispatch.cpp(308): QFException:CCL_RETHROW: RSDocAssemblyDispatch :: dispatchAssemblyAssembly / RSTableCellAssembly.cpp(137): QFException:CCL_RETHROW: RSTableCellAssembly :: assembleAssembly / RSDocAssemblyDispatch.cpp(358): QFException:CCL_RETHROW: RSDocAssemblyDispatch :: dispatchChildrenAssemblyForwardAssembly / RSDocAssemblyDispatch.cpp(308): QFException:CCL_RETHROW: RSDocAssemblyDispatch :: dispatchAssemblyRSQueryMgr.cpp(1131): QFException:CCL_RETHROW: RSQueryMgr :: getResultSetIteratorRSQueryMgr.cpp(1295):QFException: CCL_RETHROW:RSQueryMgr :: createIteratorRSQueryMgr.cpp(1569): QFException:CCL_RETHROW: RSQueryMgr :: executeRsapiCommandRSQueryMgr.cpp(1559):QFException: CCL_RETHROW: RSQueryMgr :: executeRsapiCommandRSQueryMgrExecutionHandlerImpl.cpp(168): QFException:CCL_RETHROW: RSQueryMgrExecutionHandlerImpl ::执行()RSQueryMgrExecutionHandlerImpl.cpp(160): QFException:CCL_RETHROW: RSQueryMgrExecutionHandlerImpl ::执行()QFSSession.cpp(1147): QFException:CCL_RETHROW: QFSSession :: ProcessDoRequest()QFSSession.cpp(1145):QFException: CCL_CAUGHT:QFSSession :: ProcessDoRequest()QFSSession.cpp(1102): QFException:CCL_RETHROW: QFSSession :: ProcessDoRequest()QFSSession.cpp(1078):QFException: CCL_RETHROW:QFSSession :: ProcessDoRequest()QFSConnection.cpp(788): QFException:CCL_RETHROW:QFSConnection :: ExecuteQFSQuery.cpp(213): QFException:CCL_RETHROW:QFSQuery :: Execute v2CoordinationQFSQuery.cpp(4456):QFException:CCL_THROW: CoordinationPlanner
我也尝试过to_date而不是强制转换。但我仍然得到同样的东西。有什么帮助吗?
答案 0 :(得分:0)
我刚使用了_add_days和我的ToDate,所以最大日期现在是2013年3月2日12:00:00 AM。这使得Cognos能够正确计算2013年3月1日的日期。