У меня есть запрос, в котором я пытаюсь использовать оператор case, ссылающийся на два столбца.Как ссылаться на несколько столбцов в аргументе case
данных:
Пользователи таблица:
ID_User sUserName
1 Test
2 Test2
3 Test3
Клиенты таблице:
ID last name Redeemed paid
1 Cust1 10/1/16 9/15/16
2 Cust2 9/16/16 9/14/16
3 Cust3 10/4/16 9/30/16
4 Cust4 10/5/16 10/1/16
Запрос:
SELECT Users.sUserName, Customers.LastName, CASE WHEN customers.Redeemed < '9/28/16' AND
customers.paid < '9/28/16' THEN '3' ELSE '4' END AS Amount
FROM Customers LEFT OUTER JOIN
Users ON Customers.lGreeterId = Users.ID_User
WHERE (Customers.Redeemed BETWEEN @startdate AND @enddate)
Вывод запроса:
susername last name amount
Test Cust1 4
Test2 Cust2 4
Test3 Cust3 4
Test3 Cust4 4
Вывод должен быть:
susername last name amount
Test Cust1 3
Test2 Cust2 3
Test3 Cust3 4
Test3 Cust4 4
Почему я получаю результат "еще" для всех из них? Я хочу вернуть «3», если выкупленное будет меньше указанной даты. OR
уплачено меньше указанной даты.
оплачиваемого и Redeemed оба типов данных datetime
@jpw Основываясь на выходе, это то, что я думал, что OP клонит .. . – JohnHC
Я ищу И, а не OR - – Shmewnix
@Shmewnix, тогда это ваши типы данных, которые запрещены. – JohnHC