我正在使用Cognos Reporting Studio。我想做的是对一系列日期内的物品进行统计。我将显示所选年份和前两年的计数。但是,还有第四项计数显示为空白年份。现在我开始认为这是因为日期所附的时间。因此,当最大日期值为2013年3月1日12:00:00AM时,则2013年5月1日06:17:00AM不在该范围内。我需要从日期中删除时间。以下是我目前正在使用的:
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"时出错status="-9"。
还有这条重要消息。我确信我不必包括所有这些,但我会的。
UDA-SQL-0107操作过程中发生一般异常"prepare".ORA-00904:"SUBSTRING":无效标识符RSV-SRV-0042追溯:RSReportService.cpp(722):QFException:CCL_COUGHT:RSReportService::process()RSReportServiceMethod.cpp(263):QFException:CCL_RETROW:RSReportServiceMethod::process():asynchWait_RequestRSASyncExecutionThread.cpp(808):QFException:RSASyncExecutionThread::checkExceptionRSASyncExecutionThread.cpp(260):QFException:CCL_COUGHT:RSASyncExecutionThread::runImpl():promptPagingForward_RequestRSASyncExecutionThread.cpp(864):QFException:CCL_RETROW:RSASyncExecutionThread::processCommand():promptPagingForward_RequestExecution/RSRenderExecution.cpp(670):QFException:CCL_RETROW:RSRenderExecution::executeAssembly/RSDocAssemblyDispatch.cpp(291):QFException:CCL_RETROW:RSDocAssemblyDispatch::dispatchAssembly/RSRLayoutAssembly.cpp(79):QFException:CCL_RETROW:RSLayoutAssembly::assemblyAssembly/RSDocAssemblyDispatch.cpp(358):QFException:CCL_RETROW:RSDocAssemblyDispatch::dispatchChildrenAssemblyForwardAssembly/RSReportPagesAssembly.cpp(179):QFException:CCL_RETROW:RSReportPagesAssembly::assembly/RSDocAssemblyDispatch.cpp(308):QFException:CCL_RETROW:RSDocAssemblyDispatch::dispatchAssembly/RPageAssembly.cpp(303):QFException:CCL_RETROW:RSPageAssembly::assemblyAssembly/RSDocAssemblyDispatch.cpp(308):QFException:CCL_RETROW:RSDocAssemblyDispatch::dispatchAssembly/RTableRowAssembly.cpp(177):QFException:CCL_RETROW:RSTableRowAssembly::assemblyAssembly/RSDocAssemblyDispatch.cpp(308):QFException:CCL_RETROW:RSDocAssemblyDispatch::dispatchAssembly/RTableCellAssembly.cpp(137):QFException:CCL_RETROW:RSTableCellAssembly::assemblyAssembly/RSDocAssemblyDispatch.cpp(358):QFException:CCL_RETROW:RSDocAssemblyDispatch::dispatchChildrenAssemblyForwardAssembly/RTableAssembly.cpp(119):QFException:CCL_RETROW:RSTableAssembly::assemblyAssembly/RSDocAssemblyDispatch.cpp(358):QFException:CCL_RETROW:RSDocAssemblyDispatch::dispatchChildrenAssemblyForwardAssembly/RTableRowAssembly.cpp(177):QFException:CCL_RETROW:RSTableRowAssembly::assemblyAssembly/RSDocAssemblyDispatch.cpp(308):QFException:CCL_RETROW:RSDocAssemblyDispatch::dispatchAssembly/RTableCellAssembly.cpp(137):QFException:CCL_RETROW:RSTableCellAssembly::assemblyAssembly/RSDocAssemblyDispatch.cpp(358):QFException:CCL_RETROW:RSDocAssemblyDispatch::dispatchChildrenAssemblyForwardAssembly/RSDocAssemblyDispatch.cpp(308):QFException:CCL_RETROW:RSDocAssemblyDispatch::dispatchAssemblyRSQueryMgr.cpp(1131):QFException:CCL_RETROW:RSQueryMgr::getResultSetIteratorRSQueryMgr.cpp(1295):QFException:CCL_RESHOW:RSQueryMgr::createIteratorRSQueryMgr.cpp(1569):QFException:CCL_RETROW:RSQueryMgr::executeSapiCommandRSQueryMgr.cpp(1559):QFException:CCL_throw:RSQueryMgr::executeSapiCommandRSQueryMgrExecutionHandlerImpl.cpp(168):QFException:CCL_RETROW:RSQueryMgrExecutionHandlerImpl::execute()RSQueryMgrExecutionHandlerImpl.cpp(160):QFException:CCL_RETROW:RSQueryMgrExecutionHandlerImpl::execute()QFSSession.cpp(1147):QFException:CCL_RETROW:QFSSession::ProcessDoRequest()QFSSession.cpp(1145):QFException:CCL_COUGHT:QFSSession::ProcessDoRequest()QFSSession.cpp(1102):QFException:CCL_RETROW:QFSSession::ProcessDoRequest()QFSSession.cpp(1078):QFException:CCL_RESHOW:QFSSession::ProcessDoRequest()QFSConnection.cpp(788):QFException:CCL_RETROW:QFS连接::ExecuteQFSQuery.cpp(213):QFException:CCL_RETROW:QFSQuery::执行v2CoordinationQFSQuery.cpp(4456):QFException:CCL_TROW:协调规划师
我也尝试过to_date而不是强制转换。但我还是得到了同样的东西。有什么帮助吗?
我刚刚在ToDate中使用了_add_days,所以最长日期现在是2013年3月2日12:00:00AM。这是计算2013年3月1日日期的正确方法。