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

SQL во всех проявлениях - от ANSI-92 до TSQL.

Модераторы: Yurich, Absurd

Ответить
мслм
Сообщения: 1
Зарегистрирован: 21 июн 2006, 17:25

Здравствуйте!

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

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

 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-го.
Спасибо заранее.
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

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
Ответить