【问题标题】:Choose between two dates as a parameter on ssrs report builder 2008在 ssrs 报告生成器 2008 上选择两个日期作为参数
【发布时间】:2013-07-26 14:24:55
【问题描述】:

我需要显示四个参数来显示年份和期间之间的数据,例如我想返回发生在 2011 年第 12 期和 2012 年第 4 期之间的交易

我已经走了这么远,但不知道把我放在哪里,我想我还需要 = 某处?

SELECT  
    dbo.MBO450.cmpcode AS CMPCODE, 
    dbo.MBO300.yr AS YR, 
    dbo.MBO300.period AS PERIOD, 
    dbo.MBO300.inpdate AS INPUT_DATE, 
    dbo.MBO300.docdate AS DOCUMENT_DATE, 
    dbo.MBO450.doccode AS DOCCODE, 
    dbo.MBO450.docnum AS DOCNUM, 
    dbo.MBO450.el2 AS EL2, 
    dbo.MBO110.vat AS VATCODE, 
    dbo.MBO450.ref1 AS SUPPLIER_INVOICE, 
    dbo.MBO450.ref2 AS INVOICE_REGISTER, 
    dbo.MBO450.ref3 AS EXT_REF3, 
    dbo.MBO450.ref4 AS EXT_REF4, 
    dbo.MBO130.name AS EL2_NAME, 
    MBO450_1.el2 AS SUPPLIER, 
    MBO130_1.name AS [SUPPLIER NAME], 
    dbo.MBO440.vat, 
    dbo.MBO440.federaltax, 
    dbo.MBO440.ten99code, 
    dbo.MBO320.add1, 
    dbo.MBO320.add2, 
    dbo.MBO320.add3, 
    dbo.MBO320.add4, 
    dbo.MBO320.add5, 
    dbo.MBO320.add6, 
    dbo.MBO320.postcode, 
    dbo.MBO320.country, 
    dbo.MBO320.tel, 
    dbo.MBO320.fax, 
    dbo.MBO450.doctaxturn 
FROM 
    dbo.MBO300 
    INNER JOIN dbo.MBO450 
          ON dbo.MBO300.cmpcode = dbo.MBO450.cmpcode 
             AND dbo.MBO300.doccode = dbo.MBO450.doccode 
             AND dbo.MBO300.docnum = dbo.MBO450.docnum 
    INNER JOIN dbo.MBO110 
          ON dbo.MBO450.cmpcode = dbo.MBO110.code 
    INNER JOIN dbo.MBO130 
          ON dbo.MBO450.cmpcode = dbo.MBO130.cmpcode 
             AND dbo.MBO450.el2 = dbo.MBO130.code 
    INNER JOIN dbo.MBO450 AS MBO450_1 
          ON dbo.MBO450.cmpcode = MBO450_1.cmpcode 
             AND dbo.MBO450.doccode = MBO450_1.doccode 
             AND dbo.MBO450.docnum = MBO450_1.docnum 
    INNER JOIN dbo.MBO130 AS MBO130_1 
          ON MBO450_1.el2 = MBO130_1.code 
    INNER JOIN dbo.MBO440 
          ON MBO450_1.el2 = dbo.MBO440.elmcode 
    INNER JOIN dbo.MBO320 
          ON MBO450_1.el2 = dbo.MBO320.elmcode 
WHERE 
    (dbo.MBO450.el2 = 'VIZ') 
    AND (MBO450_1.el2 LIKE 'S%')
    AND dbo.MBO300.yr LIKE (@YEAR) 
    AND dbo.MBO300.period LIKE (@PERIOD) 
ORDER BY 
    YR, PERIOD, DOCNUM

【问题讨论】:

  • 您当前的代码使用@YEAR@PERIOD 参数。这些会被“从”年/期间和“到”年/期间替换吗?
  • 嗨,乔-老实说,@year 和 @period 参数是我最初尝试使用的参数,但发布后它们将可用-我对如何编写最佳代码持开放态度我的参数,我将在报告中相应地更改它们 - 就像我说我正在寻找有关如何从(期间和年份)和到(期间和年份)编码的方向

标签: sql date parameters period year2038


【解决方案1】:

将@Year 和@Period 条件替换为:

(dbo.MBO300.yr > 2011 
    OR (dbo.MBO300.yr = 2011 
        AND dbo.MBO300.period >= 12))
AND (dbo.MBO300.yr < 2012
    OR (dbo.MBO300.yr = 2012 
        AND dbo.MBO300.period <= 4))

或者,使用参数:

(dbo.MBO300.yr > @YEAR_START
    OR (dbo.MBO300.yr = @YEAR_START 
        AND dbo.MBO300.period >= @PERIOD_START))
AND (dbo.MBO300.yr < @YEAR_END
    OR (dbo.MBO300.yr = @YEAR_END
        AND dbo.MBO300.period <= @PERIOD_END))

【讨论】:

  • 感谢乔,这是完美的 :-)
猜你喜欢
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多