Я новичок в T-sql.
Я использую следующий запрос:
SELECT e.Id,e.cAvg,
CASE
WHEN e.cAvg<=0.8 and cAvg>=0 THEN t.Model when t.Cr='0.8' then t.Model
WHEN e.cAvg>0.8 and cAvg<=5.4 THEN t.Model WHEN t.Cr='5.4' then t.Model
WHEN e.cAvg>5.4 and cg<=8 THEN t.Model WHEN t.Cr='8' then t.Model
ELSE 'No Change Required'
END
from A e, B t;
Я пытаюсь сделать следующее:
- Выберите столбцы id и cAvg в таблице A.
- Сравните cAvg в таблице A с Cr в таблице B.
- Используйте сравнение в CASE, чтобы выбрать конкретную строку, которая удовлетворяет условию.
- Используйте выбранную строку для выдачи результатов запроса.
t.Model - это столбец таблицы B. Я хочу выбрать значение t.Model для выбранной строки в операторе case.
Я чувствую, что путь состоит в том, чтобы каким-то образом включить эквивалент выражения where в When of CASE.
Need Direction !!
Схема таблицы:
TableA:
+----+------+
| id | cAvg |
+----+------+
| 1 | .8 |
| 2 | 5.4 |
| 3 | 6.0 |
+----+------+
Таблица B:
+-----+-------+
| Cr | Model |
+-----+-------+
| 2 | M1 |
| 5.5 | M2 |
| 8 | M3 |
+-----+-------+
Я хочу следующее:
- Сравните значения cAvg с условием => (cAvg<= 8 And cAvg> = 5.5 => выбранная модель должна быть M3.)
Результат, который я хочу получить:
+----+------+-------+
| id | cAvg | Model |
+----+------+-------+
| 1 | .8 | M1 |
| 2 | 5.4 | M2 |
| 3 | 6.0 | M3 |
+----+------+-------+
Я устал Присоединиться, как предложено вкомментарии, Абольшое спасибо, я многому научился благодаря этому !!.
Моя проблема в том, что нет общих столбцов для присоединения.Также мне нужно сравнить столбец в одной таблице с столбцом в другой таблице, а затем дать результат, основанный на сравнении.
Я сослался на многие ответы в переполнении стека, но все ответы для предпосылки, где естьобщий столбец.
Я попробовал следующее:
- Внутреннее соединение
- Случаи
Мне нужно направление, в каком направленииМне нужно войти в.Спасибо !!