2016-04-15 8 views
0

Ich habe die folgende ODBC-Abfrage von SSRS zu einer MySQL-Datenbank:Kann ich einen ODBC-Parameter zweimal verwenden?

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 > ?) 

Als ich SSRS laufen, bekomme ich zweimal für die ersten beiden Parameter aufgefordert. Idealerweise müsste ich diesen Wert nur einmal eingeben und zweimal verwenden können. Kann ich einen Positionsparameter innerhalb einer SSRS-Abfrage zweimal verwenden, damit der Benutzer nicht zweimal aufgefordert wird?

Antwort

0

Ich glaube nicht, Sie benannte Parameter zu MySQL wie das passieren kann, aber ich denke, man sie in der Abfrage erstellen:

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) 

Nebenbei bemerkt, ich Denken Sie, Sie müssen Ihre OR Klauseln in einem separaten Satz von Klammern setzen.

0

Nennen Sie die Parameter:

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)