我可以使用一个 ODBC 参数两次吗?
Can I use an ODBC parameter twice?
我有以下从 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 查询中使用位置参数两次,这样就不会提示用户两次吗?
命名参数:
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)
我认为您不能像那样将命名参数传递给 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 子句放在一组单独的括号中。
我有以下从 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 查询中使用位置参数两次,这样就不会提示用户两次吗?
命名参数:
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)
我认为您不能像那样将命名参数传递给 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 子句放在一组单独的括号中。