programing

MS 액세스 쿼리를 Maria로 변환하는 중DB

javajsp 2023. 8. 27. 08:55

MS 액세스 쿼리를 Maria로 변환하는 중DB

현재 MS Access 데이터베이스에서 사용 중인 이 세 가지 쿼리(아래)와 동일한 출력을 생성할 MariaDB SQL 명령을 만드는 데 어려움을 겪고 있습니다.내 Excel VBA 스크립트는 아래의 세 번째 SQL 쿼리 명령(Hours to Heat Electric WH)을 이 SQL 명령으로만 호출하며, 여기서 날짜 값은 동적으로 대체됩니다.이 질문의 목적을 위해 명령은 다음과 같습니다.

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

다음은 결과 테이블의 요약입니다.

날짜_시간 날짜 시간 최대 WH 출력 최소 WH 출력6/27/18 0:52    06/27/18    00.52    60.38        43.566/28/18 0:52    06/28/18    00.52    60.50        44.446/29/18 0:32    06/29/18    00.32    60.13        45.386/30/18 0:32    06/30/18    00.32    60.19        47.137/1/18 0:12    07/01/18    00.12    60.50        47.567/2/18 0:42    07/02/18    00.42    60.44        44.947/3/18 0:42    07/03/18    00.42    60.38        46.88

MariaDB 데이터베이스와 SQL 명령을 사용하여 이 프로세스를 복제하고 싶습니다.도와주실 수 있나요?

그런데 MariaDB에서는 날짜와 날짜 형식이 다르게 처리되는 것으로 알고 있습니다.

다음은 MS Access 데이터베이스의 SQL 쿼리입니다.

일별로 TemData 가져오기:

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');

전기WH 데이터:

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];

전기 난방 시간 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];

알았어요, 알아냈어요!MariaDB의 저장된 VIEW는 MS Access Stored Query처럼 작동합니다.세 개의 MS Access 쿼리(물론 수정된 구문 포함)를 데이터베이스에 저장된 VIES로 추가할 수 있었습니다.이 작업은 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);

그러면 MS Access에 저장된 쿼리를 복제하기 위해 만든 다른 두 개의 보기에서 사용됩니다.

시간 내주셔서 감사합니다...RDK

언급URL : https://stackoverflow.com/questions/58537126/converting-ms-access-queries-to-mariadb