Использование
переменных при формировании запросов
При формировании выборки в программах
вы можете использовать переменные для определения условий выборки и задания
имени таблицы, в которую записываются результаты выборки.
Рассмотрим пример создания запроса,
в котором определяется итоговая сумма по каждому заказу. За основу возьмем аналогичный
запрос, созданный ранее в интерактивном режиме. В него добавим возможность задания
интервала, за который будет осуществляться выборка, а также имени результирующей
таблицы.
-
Откройте новое окно редактирования
программы. Для этого в меню File (Файл) выберите команду New (Новый).
-
В открывшемся диалоговом окне
выберите опцию Program (Программа) и нажмите кнопку New file (Новый файл).
-
Откройте окно созданного ранее
запроса, содержащего выборку из таблиц Ordsalem
и
Ordsaled
с итоговой суммой по каждому заказу.
-
Нажмите кнопку Show the SQL Window
(Показать SQL) на панели инструментов Query Designer (Конструктор запроса)
или в меню Query (Запрос) выберите команду View SQL (Показать SQL).
-
В окне просмотра выделите команду
SELECT и сохраните ее во временном буфере Windows.
-
Скопируйте содержимое буфера Windows
в окно редактирования программы.
-
Укажите перед командой SELECT
начальную и конечную даты, определяющие промежуток времени, а также значение
переменной, которая задает имя результирующей таблицы:
dBeg=CTOD("01.11.01")
&& начальная дата
dEnd=CTOD("30.11.01")
&& конечная дата
c0utput="0rds"
&& имя результирующей таблицы
-
Добавьте в конструкцию
SELECT условие задания периода времени, используя переменные dBeg и dEnd:
SELECT
Ordsalem.cnDoc AS заказ,;
SUM(Ordsaled.nQuant*Ordsaled.nUnitPrice)
AS стоимость;
FROM sales!ordsalem INNER
JOIN saleslordsaled ;
ON Ordsalem.icdorder
= Ordsaled.icdorder;
WHERE Ordsalem.dDoc BETWEEN
dBeg AND dEnd;
GROUP BY Ordsalem.icdorder;
INTO TABLE ScOutput
-
Сохраните программу
под именем Ords.prg и проверьте синтаксис.
-
Выполните программу, в результате
чего в таблицу ords будет записана итоговая сумма по заказам. В дальнейшем
вы можете использовать эту таблицу для просмотра, печати отчета или построения
графика.
Содержание раздела