Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Access > Запрос


Автор: kapbepucm 5.3.2008, 17:36
Есть, скажем, "нередактируемая" таблица кое-каких официальных данных
Код
================
    O_Table
----------------
ID       Summa
----------------
1        10.33
2       100.01
3         1.02
================
Есть обычная таблица для замены в O_Table полей Summa на те значения, которые хотел бы видеть я (если поле Summa не заполнено, то замену производить не надо будет).
Код
================
    R_Table
----------------
ID       Summa
----------------
1        10.32
2       100.00
3
================
Хочу увидеть запрос, где я бы смог редактировать поле R_Summa:
Код
===================================
             Query1
-----------------------------------
ID     O_Summa  R_Summa Field1
-----------------------------------
1        10.33   10.32  замена
2       100.01  100.00  замена
3         1.02          без замены
===================================
За основу беру R_Table, Field1 высчитываю с помощью IIf и IsNull, O_Summa- c помощью DFirst. Всё хорошо получается, но тормозит сильно от DFirst. Посоветуйте, на что DFirst поменять, чтобы увеличить скорость выполнения запроса.

Автор: Akina 6.3.2008, 00:19
Код

SELECT O_Table.ID,
       O_Table.Summa AS O_Summa,
       R_Table.Summa AS R_Summa,
       IIf(IsNull([R_Table]![Summa]),"нет замены","замена") AS Field1
FROM      O_Table 
LEFT JOIN R_Table 
ON        O_Table.ID = R_Table.ID

Автор: kapbepucm 6.3.2008, 10:09
С таблицами получается, но в моём примере, что забыл добавить, в качестве O_Table выступает запрос, созданный на основе запросов, те в свою очередь тоже созданы на основе запросов, в общем сложная структура; в результате есть запрос который показывает нужные данные. Если делаю ваш запрос, где R_Table таблица, а O_Table- запрос, то данные показывает, а редактировать не дает :( (редактировать мне надо R_Table) Как быть в этом случае?

Автор: Akina 6.3.2008, 10:19
У меня всегда была двойка по телепатии :(
Попробуйте INNER JOIN (во бред-то) или связывание отбором.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)