MySQL 쿼리를 SQL Server 2000 용 MSSQL 쿼리로 변환

줄리어스 인드로 안 할림

mssql 쿼리에서 mysql 쿼리를 실행할 때 오류가 발생하는 이유를 알아 내야했습니다. 저는 SQL Server 2000을 사용하고있었습니다. 제 목표는 mysql에서 사용하는 것과 동일한 방식으로 결과를 얻는 것입니다.

데이터베이스에 대한 간단한 설명 : 데이터베이스는 수신, md_login 및 master_device의 3 가지 기본 테이블이있는 gps 추적기에 관한 것입니다.

다음은 내가 줄 테이블과 구조입니다.

테이블 수신 구조 :
이 테이블은 주로 각 차량의 GPS 추적기의 수신 데이터에 사용되므로 모든 간격이이 테이블에 수신 데이터가 있습니다. 일부 테이블 구조에 관해서는 '탕갈'이 영어로 '날짜'의 의미라고 말할 수 있습니다.

Text1 varchar
...
Text18 varchar <used as imei>
...
Text31 varchar
Distance varchar
Tanggal datetime
TanggalIncoming datetime 
StartDate datetime
EndDate datetime
EngineStatus varchar
AccStatus varchar
Moving varchar
Address varchar

테이블 md_login의 구조 :
테이블은 imei 데이터와 함께 차량을 저장하는 데 사용되므로 1 개의 Log_ID는 많은 Log_DeviceID를 가질 수 있습니다.

Log_ID char <used as username>
Log_DeviceID varchar <used as vehicle number> 
Log_DeviceIMEI varchar <used as imei>
Log_Date datetime

md_login 테이블의 샘플 데이터 :

Log_ID - Alex
Log_DeviceID - B 7777 GHI
Log_DeviceImei - 012896001194123
Log_Date - 2017-05-30 13:46:57

master_device 테이블의 구조 :

Device_Imei varchar
Device_PoliceNumber char
Device_MobileNumber char
Device_MobileNumber2 char
Model varchar
Port char
PortDevice char
ActiveDate datetime
LastUpdate datetime
IdxConn varchar
CommandOperate char
Picture varchar

master_device 테이블의 샘플 데이터 :

Device_Imei - 012896001194123
Device_PoliceNumber - B 7777 GHI
Device_MobileNumber - 01234567
Device_MobileNumber2 - 
Model - STV-08
Port - 340
PortDevice - 20557
ActiveDate - 2017-05-30 13:46:57
LastUpdate - Null
IdxConn - Null
CommandOperate - Null
Picture - livina_grey.png

다음은 이미 mysql에서 작동하는 쿼리입니다.

SELECT fi.text18 as Imei,
        md.Device_PoliceNumber,
        fi.Text6 as Lat,
        fi.Text8 as Lng,
        fi.Text10 as Speed,
        fi.Text16 as Gps_Signal,
        fi.Text21 as Battery,
        fi.Text22 as Charging,
        fi.Text29 as Oil,
        fi.Text30 as Temperature,
        md.Picture,
        fi.EngineStatus,
       fi.TanggalIncoming,
       fi.Moving,
        fi.Address
    FROM incoming fi
    INNER JOIN (SELECT MAX(tanggalincoming) as maxtglincoming,text18,moving
                 FROM incoming
                 GROUP BY text18) ri
     ON ri.maxtglincoming = fi.tanggalincoming AND
            ri.text18=fi.text18
    INNER JOIN md_login AS mdl ON (ri.text18=mdl.log_deviceimei AND
    mdl.log_id='alex')
    INNER JOIN master_device AS md ON md.device_imei=mdl.log_deviceimei
    GROUP BY fi.text18
    ORDER BY md.Device_PoliceNumber ASC

쿼리에 대한 약간의 설명 : 그래서 MAX(tanggalincoming)처음에는 테이블 호출 수신의 최신 업데이트를 기반으로 행 결과를 가져 오는 데 사용했습니다. 다음 단계는 전체 수신 테이블이있는 최근 수신 테이블에서 내부 조인을 수행했기 때문에 반환 할 데이터는 이미 내부 조인 된 최신 수신 데이터를 기반으로합니다.

다음은 mysql에서 쿼리를 실행할 때 표시되는 샘플 데이터 결과입니다. 하나의 사용자 이름이 둘 이상의 차량을 가질 수 있으므로 결과가 둘 이상의 행 데이터가있을 수 있습니다.

Imei - 012896001194123
Device_PoliceNumber - B 7777 GHI
Lat - -6.27585
Lng - 106.66172
Speed 0
Gps_Signal F
Battery - F:4.18V
Charging - 1
Oil - Null
Temperature - Null
Picture - livina_grey.png
EngineStatus - OFF
TanggalIncoming - 2017-05-31 05:25:59
Moving - STOP 
Address - Example Street 

하지만 SQL Server 2000에서 쿼리를 실행하려고하면 다음과 같은 오류가 표시됩니다.

서버 : 메시지 8120, 수준 16, 상태 1, 줄 1.
'md.Device_PoliceNumber'열이 집계 함수 또는 GROUP BY 절에 포함되어 있지 않기 때문에 선택 목록에서 유효하지 않습니다.

그래서 주요 질문은 : SQL 쿼리에서 동일한 결과를 어떻게 얻을 수 있습니까?

Pasetchnik

당신이 (같은 집계 함수를 사용하는 경우 MAX, SUM는 SQL Server의 등), 당신은 다른 모든 필드를 포함해야한다 GROUP BY절을.

귀하의 하위 쿼리이 경우, 당신은 SELECT MAX(tanggalincoming) as maxtglincoming,text18,moving하지만 text18에 포함되어 있습니다 GROUP BY. 다음과 같이 표시되어야합니다.

SELECT MAX(tanggalincoming) as maxtglincoming,text18,moving
FROM incoming
GROUP BY text18,moving

두 번째는 큰 쿼리에 집계 함수가 없다는 것입니다. 따라서 제거해야합니다.

GROUP BY중복을 억제 하는 데 사용했다면 DISTINCT대신 사용하십시오.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

codeigniter 쿼리를 SQL 쿼리로 변환

분류에서Dev

SQL Server 저장 프로 시저를 쿼리로 변환

분류에서Dev

선택에서 하위 쿼리를 사용하여 SQL 쿼리를 .NET Core 쿼리로 변환하는 방법

분류에서Dev

MSSQL CTE 쿼리를 MySQL 5.7로 변환하는 방법은 무엇입니까?

분류에서Dev

PostgreSQL 쿼리를 SQL Server 쿼리로 변환

분류에서Dev

Distinct를 사용하여 SQL 쿼리를 Linq (C #)로 변환

분류에서Dev

쿼리를 SQL Server 구문으로 변환

분류에서Dev

이 SQL Server 2016 쿼리를 BigQuery로 변환하는 방법

분류에서Dev

SQL SERVER 쿼리를 POSTGRES로 변경

분류에서Dev

정규 표현식 쿼리를 SQL Server로 변환

분류에서Dev

Dapper를 사용하여 SQL 쿼리를 IList <T>로 변환

분류에서Dev

MS-SQL Server 저장 프로 시저를 MySQL 쿼리로 변환

분류에서Dev

이 쿼리를 mssql에서 mysql로 변환하고 싶습니다.

분류에서Dev

이 mssql 쿼리를 mysql로 변환

분류에서Dev

`SUM 및 GROUP BY를 사용하여 mySQL 쿼리를 SQLite로 변환

분류에서Dev

mysql 쿼리를 JPQL 쿼리로 변환

분류에서Dev

mysql 쿼리를 JPQL 쿼리로 변환

분류에서Dev

저장 프로 시저를 쿼리로 변환 (SQL Server Compact)?

분류에서Dev

SQL Server 쿼리를 MongoDB 쿼리 @ 런타임으로 변환

분류에서Dev

SQL Server 2008 쿼리를 bcp 쿼리로 변환

분류에서Dev

SQL Server 쿼리를 SQLite 쿼리로 변환

분류에서Dev

MySql 쿼리를 MSSql 쿼리로 변환

분류에서Dev

SQL 쿼리를 Codeigniter 쿼리로 변환

분류에서Dev

SQL Server 쿼리를 Linq 쿼리로 변환

분류에서Dev

GROUP BY를 포함하는 SQL Server 쿼리를 NHibernate LINQ로 변환

분류에서Dev

Oracle 쿼리를 SQL Server로 변환 하시겠습니까?

분류에서Dev

mysql 쿼리를 laravel 쿼리로 변환

분류에서Dev

SQL 쿼리를 SQL Server 2000 용 XML 출력으로 변환하는 데 문제가 있습니다.

분류에서Dev

SPARQL 쿼리를 SQL 쿼리로 변환

Related 관련 기사

  1. 1

    codeigniter 쿼리를 SQL 쿼리로 변환

  2. 2

    SQL Server 저장 프로 시저를 쿼리로 변환

  3. 3

    선택에서 하위 쿼리를 사용하여 SQL 쿼리를 .NET Core 쿼리로 변환하는 방법

  4. 4

    MSSQL CTE 쿼리를 MySQL 5.7로 변환하는 방법은 무엇입니까?

  5. 5

    PostgreSQL 쿼리를 SQL Server 쿼리로 변환

  6. 6

    Distinct를 사용하여 SQL 쿼리를 Linq (C #)로 변환

  7. 7

    쿼리를 SQL Server 구문으로 변환

  8. 8

    이 SQL Server 2016 쿼리를 BigQuery로 변환하는 방법

  9. 9

    SQL SERVER 쿼리를 POSTGRES로 변경

  10. 10

    정규 표현식 쿼리를 SQL Server로 변환

  11. 11

    Dapper를 사용하여 SQL 쿼리를 IList <T>로 변환

  12. 12

    MS-SQL Server 저장 프로 시저를 MySQL 쿼리로 변환

  13. 13

    이 쿼리를 mssql에서 mysql로 변환하고 싶습니다.

  14. 14

    이 mssql 쿼리를 mysql로 변환

  15. 15

    `SUM 및 GROUP BY를 사용하여 mySQL 쿼리를 SQLite로 변환

  16. 16

    mysql 쿼리를 JPQL 쿼리로 변환

  17. 17

    mysql 쿼리를 JPQL 쿼리로 변환

  18. 18

    저장 프로 시저를 쿼리로 변환 (SQL Server Compact)?

  19. 19

    SQL Server 쿼리를 MongoDB 쿼리 @ 런타임으로 변환

  20. 20

    SQL Server 2008 쿼리를 bcp 쿼리로 변환

  21. 21

    SQL Server 쿼리를 SQLite 쿼리로 변환

  22. 22

    MySql 쿼리를 MSSql 쿼리로 변환

  23. 23

    SQL 쿼리를 Codeigniter 쿼리로 변환

  24. 24

    SQL Server 쿼리를 Linq 쿼리로 변환

  25. 25

    GROUP BY를 포함하는 SQL Server 쿼리를 NHibernate LINQ로 변환

  26. 26

    Oracle 쿼리를 SQL Server로 변환 하시겠습니까?

  27. 27

    mysql 쿼리를 laravel 쿼리로 변환

  28. 28

    SQL 쿼리를 SQL Server 2000 용 XML 출력으로 변환하는 데 문제가 있습니다.

  29. 29

    SPARQL 쿼리를 SQL 쿼리로 변환

뜨겁다태그

보관