Мне нужно удалить записи с общим количеством <100 и [Линия продуктов] содержит «Электроника». </p>
Ниже приведены данные таблицы, здесь RunningTotal не является исходным полем в таблице, это вывод подзапроса (внутреннего запроса).
ID Product Line Qty RunningTotal
1 Electronics 15 15
2 R.K. Electricals 20 20
3 Samsung Electronics 10 25
4 Electricals 30 50
5 Electricals 45 95
6 Electronics Components 18 43
7 Electricals 25 120
8 Electronics 50 93
9 Electricals Machines 65 185
10 Electronics 15 108
11 ABC Electronics Ltd 52 160
12 Electricals 15 200
Я использовал приведенный ниже запрос для фильтрации записей, когда [Product Line] содержит «Электроника» и итоговый итог <100. </p>
select t.*, q.runningtotal from salesdata t inner join
(
select t.id,
(
select sum(u.qty)
from salesdata u
where u.[product line] like "*Electronics*" and u.id <= t.id
) as runningtotal
from salesdata t
) q on t.id = q.id
where q.runningtotal < 100 and t.[product line] like "*Electronics*"
Я скопировал сопоставленные записи (на основе вышеуказанного запроса) в другую таблицу, которая работает.
После того, как я скопировал, мне нужно удалить соответствующие записи ( [Линия продуктов] содержит «Электроника» и текущий итог <100 </em>). Я написал ниже запрос, он выдает ошибку невозможно удалить из указанной таблицы и не работает
delete from (
select t.*, q.runningtotal from salesdata t inner join
(
select t.id,
(
select sum(u.qty)
from salesdata u
where u.[product line] like "*Electronics*" and u.id <= t.id
) as runningtotal
from salesdata t
) q on t.id = q.id
where q.runningtotal < 100 and t.[product line] like "*Electronics*")
Ваша помощь будет очень признательна, заранее спасибо.