|
15 Кб. |
|
| Добрый день! Подскажите пожалуйста каким образом в таблице присвоить одной строчке значение другой с условием. См. .jpg | |
|
| |
|
|
|
| вопрос а какая из строк "правильная"?
вариант № 1 - обнулить ВСЕ строчки с таким названием если есть одна нулевая?
strsql="select * from tabla where kol=0 and name=" & Текущее
set rs=dbs.openrecordset (strsql)
if rs.eof=false then dbs.execute ("update tabla set kol=0 where name=" & Текущее) | |
|
| |
|
40 Кб. |
|
| см. .jpg | |
|
| |
|
|
|
| вариант № 2 - находим первое значение нужного названия и по нему выставляем все остальные.
strsql="select * from tabla where name=" & Текущее & "Order by Поле_Индекс_Нужный_Нам"
set rs=dbs.openrecordset (strsql)
if rs.eof=false then dbs.execute ("update tabla set kol=" & rs!kol & " where name=" & Текущее)
но ответь зачем такое действо, не проще удалить все если мы меняем значение которое хранили до этого долго и бережно
Упс уже увидел новый рис. - так это вариант № 1. только с циклом по переборке уникальных значений для поля название - для ускорения процесса | |
|
| |
|
|
|
| Вот тогда такое где то:
strsql="select DISTINCT naimen from tabla where kol=0"
set rs=dbs.openrecordset (strsql)
do while re.eof=false
dbs.execute ("update tabla set kol=0 where name=" & rs!name)
rs.movenext
loop | |
|
| |
|
|
|
| может так?
update tablica set kol=0
where exists (select 1 from tablica as t2 where t2.polename=tablica.polename and t2.kol=0)
|
| |
|
| |
|
15 Кб. |
|
| а можно на моём примере пожалуйста! я чего то не правильно подставляю...
update tablica set kol=0
where exists (select 1 from tablica as t2 where t2.polename=tablica.polename and t2.kol=0) | |
|
| |
|
|
|
| тама возможно ошибка вот как справочнике
Предикат EXISTS (с необязательным зарезервированным словом NOT) используется в
логическом выражении для определения того, должен ли подчиненный запрос возвращать
какие-либо записи.
В подчиненном запросе можно использовать псевдонимы таблиц для ссылки на таблицы,
перечисленные в предложении FROM, расположенном вне подчиненного запроса.
В следующем примере отбираются фамилии и имена сотрудников, чья зарплата равна или
больше средней зарплаты сотрудников, имеющих ту же должность.
В данном примере таблица "Сотрудники" получает псевдоним "Т1":
SELECT Фамилия,
Имя, Должность, Оклад
FROM Сотрудники AS T1
WHERE Оклад >=
(SELECT Avg(Оклад)
FROM Сотрудники
WHERE T1.Должность = Сотрудники.Должность) Order by Должность;
|
п.с. не все работают в 2007 (без коментов) | |
|
| |
|
|
|
| не могу... на работе...
просто подставьте свои объекты вместо. и все. | |
|
| |
|
|
|
| по-Английски правильно пишется Assignee | |
|
| |
|
|
|
| Чукча не читатеть, Чукча - писатель!!! | |
|
| |
|
|
|
| Всем спасибо!!! Разобрался!!! | |
|
| |