Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: SQL-запросы в отчетах  (Прочитано 4174 раз)

Виктория

  • Пользователь
  • **
  • Сообщений: 87
    • Просмотр профиля
SQL-запросы в отчетах
« : 11 Июля 2023, 11:53:52 »
Здравствуйте.
Создала свой источник данных и напрямую пишу запросы в отчетах.
Почему в воркбенче проходит вот такая строчка
Код: (sql)
SET @rank=-1;

CREATE TEMPORARY TABLE table2_2 AS
(Select @rank:=@rank+1 AS N1,Timestamp,Value from trends_data WHERE
, а в редакторе отчета фатальная ошибка?
« Изменён: 12 Июля 2023, 13:01:00 от Simple-Scada »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3214
    • Просмотр профиля
    • Simple-Scada
Re: SQL-запросы в отчетах
« Ответ #1 : 12 Июля 2023, 13:00:29 »
Здравствуйте.

В системе отчетов "@имя" в запросе используется для взятия значения переменной отчета (таким образом в запрос можно подставлять значение какой-либо переменной отчета, как в этом примере). Поэтому сложные запросы с локальными переменными нужно выносить в отдельную хранимую процедуру (при необходимости с параметрами) и вызывать её из системы отчетов. Т.е. можно через MySQLWorkbench создать хранимую процедуру с нужным кодом, а затем в отчете вызывать её, например так:
Код: (sql)
call my_procedure;
« Изменён: 12 Июля 2023, 13:12:31 от Simple_Scada »

Виктория

  • Пользователь
  • **
  • Сообщений: 87
    • Просмотр профиля
Re: SQL-запросы в отчетах
« Ответ #2 : 12 Июля 2023, 13:02:58 »
Подскажите как создать можно хранимую процедуру и потом как именно к ней обратиться. Может у вас пример какой-то есть.

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3214
    • Просмотр профиля
    • Simple-Scada
Re: SQL-запросы в отчетах
« Ответ #3 : 12 Июля 2023, 13:13:41 »
Удобнее всего через MySQLWorkbench, просто кликнуть ПКМ раздел "Stored Procedures" в БД и выбрать "Create Stored Procedure", нужный код поместить между BEGIN..END. Протестировать вызов процедуры также можно через MySQLWorkbench, вызовом "call имя_процедуры". Подробное описание со скринами есть здесь.
« Изменён: 12 Июля 2023, 13:33:43 от Simple-Scada »

Виктория

  • Пользователь
  • **
  • Сообщений: 87
    • Просмотр профиля
Re: SQL-запросы в отчетах
« Ответ #4 : 13 Июля 2023, 07:22:36 »
Спасибо большое. Все получилось :)