Situation
I have a report that returns room bookings based on a user and given a date range. The problem is that there are a few thousand users and Microsoft's SQL Server Reporting Services interface isn't the most fun to scroll endlessly down. Advanced users can type the name really fast for it to auto-scroll down to the desired name. Our advanced users are exceptions to the rule.
Problem
Consider the following query:
SELECT rb.[GivenDate] , rb.[DateStart] , rb.[DateFinish] , rb.[ContactUsername] , rb.[ContactName] , rb.[Room] , rb.[BookingNotes] FROM roombookings rb WHERE rb.[GivenDate] BETWEEN @GivenDate AND @ToDate AND rb.[ContactName] LIKE '%@GivenName%' -- WARNING: 0 matching rows
- SELECT
- rb.[GivenDate]
- , rb.[DateStart]
- , rb.[DateFinish]
- , rb.[ContactUsername]
- , rb.[ContactName]
- , rb.[Room]
- , rb.[BookingNotes]
- FROM
- roombookings rb
- WHERE
- rb.[GivenDate] BETWEEN @GivenDate AND @ToDate
- AND
- rb.[ContactName] LIKE '%@GivenName%' -- WARNING: 0 matching rows
SELECT rb.[GivenDate] , rb.[DateStart] , rb.[DateFinish] , rb.[ContactUsername] , rb.[ContactName] , rb.[Room] , rb.[BookingNotes] FROM roombookings rb WHERE rb.[GivenDate] BETWEEN @GivenDate AND @ToDate AND rb.[ContactName] LIKE '%'+@GivenName+'%' --WORKS! Enclose percent signs as strings.
- SELECT
- rb.[GivenDate]
- , rb.[DateStart]
- , rb.[DateFinish]
- , rb.[ContactUsername]
- , rb.[ContactName]
- , rb.[Room]
- , rb.[BookingNotes]
- FROM
- roombookings rb
- WHERE
- rb.[GivenDate] BETWEEN @GivenDate AND @ToDate
- AND
- rb.[ContactName] LIKE '%'+@GivenName+'%' --WORKS! Enclose percent signs as strings.