SQL для каждого изменения значения предложения where через условие

#sql

#sql

Вопрос:

У меня есть эта функция, где я считаю данные из базы данных.

например

 Select column1, count(), column2 
from table1 
left join table 2 and so on
where --- some statement
and (table1.date - table2.date) <= 2
group by column1, column2
  

Теперь, что мне нужно, это сделать что-то подобное в моем предложении where для каждого данные, которые я бы проверил, имеет ли table2 статус 1, мое предложение where было бы где status = 1, но если это не так, где status = 2

это потому, что мне нужно, чтобы в моей таблице2 был статус 1, это данные, которые я бы использовал в моей таблице2.date, если этого не произойдет, я бы использовал данные статуса 2 в качестве table2.date

Комментарии:

1. В вашем запросе вообще не упоминается status , поэтому логике довольно сложно следовать.

Ответ №1:

если table2 имеет статус 1, мое предложение where будет где status = 1, но если это не так, где status = 2

Для меня это было бы переведено как следующие условия в WHERE предложении вашего запроса:

 (table2.status = 1 AND table1.status = 1) OR table1.status = 2
  

Комментарии:

1. у меня есть и дополнительные ((выберите count из table2, где table2.id = table1.id и table2.status =1) И table1.status = 1) ИЛИ table1.status = 2 это тоже правильно?

2. @kev_m: Я просто переводил ваш английский на SQL. Теперь, если вы хотите полностью рабочий запрос, вам нужно сначала показать нам весь ваш текущий SQL-запрос…

3. единственное, что я хочу здесь, это если есть счетчик, где status = 1 и table1.id равно table2.status установить status = 1 или иначе установить в статус 2

Ответ №2:

Предполагая отсутствие NULL значений в status столбцах, требуемая логика:

 where (table2.status = 1 and table1.status = 1) or
      (table2.status <> 1 and table1.status = 2)