Я все еще много узнаю о SQL-запросах, но застрял на этом. Я понимаю, что мог бы разбить этот запрос на два запроса, чтобы получить желаемую функциональность, но я хотел бы сделать это в одном, если это возможно. Моя проблема заключается в предложении Case. У меня есть условие, если столбцы входа и выхода находятся между выбранным диапазоном дат, я хочу сделать myColumnValue + .5, иначе оставить его. myColumnValue является двойным. Проблема в том, что когда я добавляю «myColumnValue + некоторую константу» к предложению THEN и Else, это делает обновление теперь действующим на строку, но когда я удаляю его и в нем есть только константы ... оно работает нормально. Я использую SQL Server 2008. Я знаю, что, возможно, мне не хватает некоторой части запроса, где я должен повторно инициализировать myColumnValue как переменную, но я не уверен, как это сделать. Если кто-то может дать мне какое-то указание, если оставить это в одном запросе, или если есть более простой способ сделать это без дел, любые рекомендации будут с благодарностью. Заранее спасибо.
UPDATE myTableName
SET myColumnValue=
(CASE
WHEN((In <= '12/1/2011' ) AND (Out >= '12/7/2011' ))
THEN(myColumnValue + .5 )
ELSE(myColumnValue)
END)
WHERE ID = 'someIndex'