Я хочу обновить столбец в той же таблице, основываясь на том, что подзапросом возвращено 4 записи.
Это структура таблицы
Id Form Quantity Transitdays percentUnderQty percentOverQty
192 0 15500 5 13950 17050
193 0 1250 5 1125 1375
194 0 5000 5 4500 5500
195 0 12500 4 11250 13750
196 0 164250 3 147825 180675
197 0 5250 3 4725 5775
198 0 6250 3 5625 6875
199 0 12250 3 11025 13475
200 0 1750 2 1575 1925
201 0 17000 2 15300 18700
202 0 2500 2 2250 2750
203 0 11500 2 10350 12650
204 0 1250 1 1125 1375
Это моя попытка до сих пор,Этот оператор обновляет все записи, а не только конкретные, основанные на подзапросе.
UPDATE Temp_Runlist
SET Form = (
SELECT MAX(Quantity) + 1 AS Form
FROM Temp_Runlist AS t2
)
WHERE EXISTS (
SELECT TOP (4) Quantity
FROM Temp_Runlist AS t1
WHERE (Quantity BETWEEN 1125 AND 1375) AND (Form = 0)
)
Логическое объяснение: я переберу каждое количество и вызову этот запрос.Запрос должен обновить столбец формы со значениями, начинающимися с 1. В приведенном ниже примере запроса результат должен быть таким, что запрос не будет обновлять форму, поскольку подзапрос обнаружил только 2 совпадающие записи.Если подзапрос вернул 4 записи, столбец Form этих 4 записей будет равен 1. При следующем проходе форма будет 2, если только подзапрос вернет четыре совпадения.