Оператор Case в SQL server
Привет Ребята,
Нужно получить цену из нескольких запросов.
если цена 1-го запроса равна 0, то выполните 2-й запрос.
если цена 2-го запроса равна 0, то выполните 3-й запрос.
Я попробовал с заявлением по делу. но это работает не так, как ожидалось.
Пожалуйста, помогите мне исправить это.
Что я уже пробовал:
select R.Id,(case when R.Price !=0.00 then R.Price when R.Price =0.00 then (select max(C.price) from ItemOption IO, Options O, ItemOptionChoices C where IO.OptionId=O.OptionId and O.OptionId = C.OptionId and O.MultipleSelections='Radio Buttons' and MenuItemId=R.Id) when R.Price =0.00 then (select max(price) as variantprice from ItemVariation IV where IV.ItemId=R.Id) end) as Price from RestaurantMenu as R where CategoryId='5b7a3bfd-427f-4813-a54e-ff32f47b95a4' and EntityType='Item' Order by CategoryOrder
OriginalGriff
"Это не работает", вероятно, самый бесполезный отчет о проблеме, который мы получаем - и мы получаем его много. Она ничего не говорит нам о том, что происходит или когда это происходит.
Итак, расскажите нам, что он делает, чего вы не ожидали, или не делает, что вы сделали.
Расскажите нам, что вы сделали, чтобы это произошло.
Сообщайте нам о любых сообщениях об ошибках.
Используйте виджет "улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.
CHill60
Пока вы редактируете свой вопрос, почему бы не добавить некоторые примеры данных и ожидаемые результаты!