【问题标题】:Can I use an ODBC parameter twice?我可以使用 ODBC 参数两次吗?
【发布时间】:2016-04-15 21:50:07
【问题描述】:

我有以下从 SSRS 到 MySQL 数据库的 ODBC 查询:

SELECT     ID,  StartTime, StartTimeMS, EndTime, EndTimeMS, TIMEDIFF(EndTime, StartTime) AS CallDuration, CallType, CallerID, DialedNumber, Extension
FROM        `call`
WHERE     (CallerID = ?) OR
                  (Extension = ?) AND (StartTime < ?) AND (StartTime > ?)

当我运行 SSRS 时,我会收到两次关于前两个参数的提示。理想情况下,我只需要输入一次该值并能够使用它两次。我可以在 SSRS 查询中使用位置参数两次,以免提示用户两次吗?

【问题讨论】:

    标签: mysql sql reporting-services odbc


    【解决方案1】:

    我认为您不能像那样将命名参数传递给 MySQL,但我认为您可以在查询中创建它们:

    SET @number = ?
    SET @EndDate = ?
    SET @BeginDate = ?
    
    
    SELECT     ID,  StartTime, StartTimeMS, EndTime, EndTimeMS, TIMEDIFF(EndTime, StartTime) AS CallDuration, CallType, CallerID, DialedNumber, Extension
    FROM        `call`
    WHERE    ( (CallerID = @number) OR (Extension = @number) ) AND (StartTime < @EndDate) AND (StartTime > @BeginDate)
    

    顺便说一句,我认为您需要将 OR 子句放在单独的括号中。

    【讨论】:

      【解决方案2】:

      为参数命名:

      SELECT     ID,  StartTime, StartTimeMS, EndTime, EndTimeMS, TIMEDIFF(EndTime, StartTime) AS CallDuration, CallType, CallerID, DialedNumber, Extension
      FROM        `call`
      WHERE     (CallerID = @number) OR
                        (Extension = @number) AND (StartTime < @EndDate) AND (StartTime > @BeginDate)
      

      【讨论】:

        猜你喜欢
        • 2021-06-25
        • 2023-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多