Страница 1 из 1

Циклический запрос на добавку

Добавлено: 21 июн 2006, 18:08
мслм
Здравствуйте!

Есть такой запрос на добавку:

Код: Выделить всё

 INSERT INTO tblТорговляЦенаКол ( IDДатаТорговля, ЦенаУсл, Цена, Продажа ) IN 'D:\Documents and Settings\Я\Мои документы\Проба.mdb'
SELECT tblТорговляДата.IDДатаТорговли, QryВводДанных.ЦенаУсл, QryВводДанных.Цена, QryВводДанных.Пдж1
FROM tblТорговляДата INNER JOIN QryВводДанных ON (tblТорговляДата.Магазин=QryВводДанных.Магазин) AND (tblТорговляДата.ДатаТорговли=QryВводДанных.Год_Месяц)
WHERE (((QryВводДанных.Пдж1)<>0));
Как его написать с таким циклическим изменением?:

Код: Выделить всё

 SELECT tblТорговляДата.IDДатаТорговли, QryВводДанных.ЦенаУсл, QryВводДанных.Цена, QryВводДанных.Пдж2
FROM tblТорговляДата INNER JOIN QryВводДанных ON (tblТорговляДата.Магазин=QryВводДанных.Магазин) AND (tblТорговляДата.ДатаТорговли=QryВводДанных.Год_Месяц + 1)
WHERE (((QryВводДанных.Пдж2)<>0));

Код: Выделить всё

 SELECT tblТорговляДата.IDДатаТорговли, QryВводДанных.ЦенаУсл, QryВводДанных.Цена, QryВводДанных.Пдж3
FROM tblТорговляДата INNER JOIN QryВводДанных ON (tblТорговляДата.Магазин=QryВводДанных.Магазин) AND (tblТорговляДата.ДатаТорговли=QryВводДанных.Год_Месяц + 2)
WHERE (((QryВводДанных.Пдж3)<>0));
И т.д. до 31-го.
Спасибо заранее.

Добавлено: 18 сен 2006, 00:05
Naeel Maqsudov
MS Jet (access) позволяет это легко сделать!

Создайте таблицу T с одной колонкой N и 31 строками со значениями 1-31

Теперь добавьте эту таблицу в запрос через INNER JOIN (что увеличит объем выборки в 31 раз).

Всместо QryВводДанных.Пдж1 используйте функцию Choose(T.N, QryВводДанных.Пдж1, QryВводДанных.Пдж2....).
(Упс! В виду ограничения на количество агрументов придется разбить на 1 блока с помощью функции IIf)
А вместо QryВводДанных.Год_Месяц+2, соответственно, QryВводДанных.Год_Месяц+T.N