Преобразование запросов MS Access в MariaDB - PullRequest
0 голосов
/ 24 октября 2019

Я изо всех сил пытаюсь создать команды MariaDB SQL, которые будут выдавать тот же результат, что и эти три запроса (ниже), которые я сейчас использую с базой данных MS Access. Мой VBA-скрипт Excel вызывает третью команду SQL-запроса ниже (Hours to Heat Elecric WH) с only этой командой SQL, где значение даты подставляется динамически. Для целей этого вопроса эта команда будет выглядеть следующим образом:

SELECT ElectricWH_Data.* 
FROM ElectricWH_Data
WHERE (ElectricWH_Data.Date_Reading) > #06/01/19#;

Это резюме результирующей таблицы:

Date_Time       Date        Time     Max WH Out   Min WH Out
6/27/18 0:52    06/27/18    00.52    60.38        43.56
6/28/18 0:52    06/28/18    00.52    60.50        44.44
6/29/18 0:32    06/29/18    00.32    60.13        45.38
6/30/18 0:32    06/30/18    00.32    60.19        47.13
 7/1/18 0:12    07/01/18    00.12    60.50        47.56
 7/2/18 0:42    07/02/18    00.42    60.44        44.94
 7/3/18 0:42    07/03/18    00.42    60.38        46.88

Я хотел бы продублировать этот процесс, но с использованиемБаза данных MariaDB и команды SQL. Вы можете помочь?

Кстати, я знаю, что даты и форматы даты обрабатываются в MariaDB по-разному.

Ниже приведены SQL-запросы из базы данных MS Access.

GetTemDataByDay:

SELECT 
  Min(PiSolarWH.Electric_WH_Out) AS MinOfElectric_WH_Out, 
  Max(PiSolarWH.Electric_WH_Out) AS MaxOfElectric_WH_Out, 
  Format(PiSolarWH.Date_Reading,'mm/dd/yy') AS TheDay
FROM
  PiSolarWH
GROUP BY
  Format(PiSolarWH.Date_Reading,'mm/dd/yy');

ElectricWHData:

SELECT
  PiSolarWH.Date_Reading, 
  Format([PiSolarWH.Date_Reading],'mm/dd/yy') AS TheDate,
  Format([Date_Reading],'hh.mm') AS DayTime, 
  GetTempDataByDay.MaxOfElectric_WH_Out AS Expr1, 
  GetTempDataByDay.MinOfElectric_WH_Out AS Expr2
FROM
  GetTempDataByDay, PiSolarWH
WHERE 
  Format([PiSolarWH.Date_Reading],'mm/dd/yy') = [GetTempDataByDay].[TheDay] 
  AND GetTempDataByDay.MaxOfElectric_WH_Out = [PiSolarWH].[Electric_WH_Out];

Часы для нагрева Elecric WH:

SELECT
  PiSolarWH.Date_Reading, 
  Format([Date_Reading],'hh.mm') AS DayTime,
  GetTempDataByDay.MaxOfElectric_WH_Out, 
  PiSolarWH.Electric_WH_Out, 
  Format([PiSolarWH.Date_Reading],'mm/dd/yy') AS Expr1
FROM
  GetTempDataByDay,
  PiSolarWH
WHERE 
  GetTempDataByDay.MaxOfElectric_WH_Out = [PiSolarWH].[Electric_WH_Out]
  AND Format([PiSolarWH.Date_Reading],'mm/dd/yy') = [GetTempDataByDay].[TheDay];

1 Ответ

0 голосов
/ 30 октября 2019

ОК, я понял это! Сохраненные VIEWS MariaDB работают как хранимые запросы MS Access. Мне удалось добавить три запроса MS Access (конечно, с измененным синтаксисом) в базу данных в виде сохраненных VIEWS. Работа точно такая же, как в MS Access. Вот один пример:

CREATE VIEW GetTempDataByDay AS
SELECT 
  date_reading,
  Min(temps.Electric_WH_Out) AS MinOfElectric_WH_Out, 
  Max(temps.Electric_WH_Out) AS MaxOfElectric_WH_Out, 
  date(temps.Date_Reading) AS TheDay
FROM
  temps
GROUP BY
  date(temps.Date_Reading);

Который затем используется в двух других VIEWS, которые я создал для дублирования сохраненных запросов MS Access.

Спасибо за ваше время .... RDK

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...