I can't figure out why this query doesn't work

I created a SQL query to query out Server (Waiter) tips. The query runs fine in SQL and on one system i have deployed but I can’t get it to run on a second system. It looks straightforward but it doesn’t work. Any help (or a second set of eyes ) would be greatly appreciated.

SELECT dbo.Users.Name, CONVERT(nvarchar, CAST(SUM(dbo.AccountTransactions.Amount) AS Money), 1) AS Tips

FROM dbo.Payments INNER JOIN
dbo.AccountTransactions ON dbo.Payments.AccountTransaction_AccountTransactionDocumentId = dbo.AccountTransactions.AccountTransactionDocumentId INNER JOIN
dbo.AccountTransactionTypes ON dbo.AccountTransactions.AccountTransactionTypeId = dbo.AccountTransactionTypes.Id INNER JOIN
dbo.Users ON dbo.Payments.UserId = dbo.Users.Id
WHERE (dbo.AccountTransactions.AccountTransactionTypeId = 12) AND (Payments.Date >= ‘{Start}’) AND (Users.Name = ‘{UserName}’)
GROUP BY dbo.Users.Name

In SQL and on one system the query gives me the server tips for the current day. The exact query on the second system doesn’t seem to recognize the variable ‘{UserName}’ and returns all the tips from all the users. What am I doing wrong?

Once again any help would be appreciated. Thank You.

I figured it out finally. I deleted the report and deleted the script and recreated both and it works now.