Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 获取超出我指定范围的日期_Sql_Reporting Services_Plsql - Fatal编程技术网

Sql 获取超出我指定范围的日期

Sql 获取超出我指定范围的日期,sql,reporting-services,plsql,Sql,Reporting Services,Plsql,我有一份报告,我正试图用SSRS修复它,因为当你在一个特定的范围内运行它时,比如说一年中的一个月。它也会给你所有以前的年份,即使它超出了参数范围 SELECT to_char(app.RECEIVED_DATE, 'mm-dd-yyyy') AS received_date , res.RESIDENCETYPE_NAME || ' - ' || act.ACTIONTYPE_NAME type , sts.APPLSTSTYPE_NAME AS Status

我有一份报告,我正试图用SSRS修复它,因为当你在一个特定的范围内运行它时,比如说一年中的一个月。它也会给你所有以前的年份,即使它超出了参数范围

SELECT
     to_char(app.RECEIVED_DATE, 'mm-dd-yyyy') AS received_date
      , res.RESIDENCETYPE_NAME || ' - ' || act.ACTIONTYPE_NAME type
      , sts.APPLSTSTYPE_NAME AS Status
      , COUNT(*) AS Total_Count
      FROM
      ODILIC_ADMIN.LICENSEAPPL app
      , ODILIC_ADMIN.LICENSEDEF def
      , ODILIC_ADMIN.ACTIONTYPE act
      , ODILIC_ADMIN.APPLSOURCE src
      , ODILIC_ADMIN.RESIDENCETYPE res
      , ODILIC_ADMIN.LICENSETYPE ltype
      , ODILIC_ADMIN.LICENSINGENTITYTYPE etype
      , ODILIC_ADMIN.APPLSTSTYPE sts
      WHERE        app.LICENSEDEF_ID = def.LICENSEDEF_ID
      AND app.ACTIONTYPE_ID = act.ACTIONTYPE_ID
      AND app.APPLSOURCE_ID = src.APPLSOURCE_ID
      AND def.RESIDENCETYPE_ID = res.RESIDENCETYPE_ID
      AND def.LICENSETYPE_ID = ltype.LICENSETYPE_ID
      AND def.LICENSINGENTITYTYPE_ID = etype.LICENSINGENTITYTYPE_ID
      AND app.APPLSTSTYPE_ID = sts.APPLSTSTYPE_ID
      AND (app.RECEIVED_DATE BETWEEN  '01-JUN-2013' AND '30-JUN-2013')
        and sts.APPLSTSTYPE_NAME in ('Completed')
      GROUP BY
      to_char(app.RECEIVED_DATE, 'mm-dd-yyyy')
      , res.RESIDENCETYPE_NAME
      , act.ACTIONTYPE_NAME
      , sts.APPLSTSTYPE_NAME
      order by 1
因此,该查询将在今年6月1日和6月30日之间过滤。当我在plsql中运行它时,它工作正常,但一旦我将它放入ssrs,它将在这一行上为我提供2012年和2011年6月的计数:和(app.RECEIVED_日期介于“2013年6月1日”和“2013年6月30日”之间)

我将直接在SSRS中设置参数来处理此问题,因为这可能会更精确地处理类型转换,以指定(DateTime)为参数类型,然后将行更改为:

和(app.RECEIVED_日期介于@Start和@End之间)


我没有使用过带SSR的plsql,但我看到过类型转换在处理WCF和其他通道时遇到的问题。我通常的尝试是首先指定要传递到查询执行中的参数,并查看是否仍然存在问题

该行专门用于plsql检查数据是否正确。在ssrs中,这一行是:(to_char(app.RECEIVED_DATE,'mm/dd/yyyyy')介于to_char(:start_DATE,'mm/dd/yyyyy')和to_char(:end_DATE,'mm/dd/yyyyy')之间,无论出于何种原因,它只查看月份和日期,而不查看年份。如果您要将某些内容转换为char,这可能会成为一个问题,因为DateTime可以通过ssrs进行多种解释。我以为你只是在“选择”语句中做了一个角色转换,而不是where子句?我找到了一个解决办法,说AND(app.RECEIVED_DATE)>(:start_DATE)。我不明白为什么中间语句不适用于年份。