私は2つの異なるGPSデバイスの種類を含むデータベースを持っています。私はGPSデバイスの種類に基づいてフィルタを1つのクエリを作成する必要があります。行の値に基づいて異なるSELECTステートメント
(gl200)デバイスタイプのクエリは次のようになります。
SELECT t1.deviceid, t1.devicetime, t1.latitude, t1.longitude
FROM positions t1
INNER JOIN
(SELECT MAX(id) as LatestGpsPoint
FROM positions
WHERE deviceid IN
(SELECT deviceid FROM device_group WHERE groupid = 7)
AND valid = 1
AND attributes LIKE '%FRI%'
AND network != 'null'
AND devicetime >= (SELECT deploymentdate
FROM devices
WHERE id = deviceid
LIMIT 1
)
GROUP BY deviceid
) t2
ON t1.id = t2.LatestGpsPoint
ORDER BY t1.deviceid ASC
LIMIT 0,100
他のデバイスタイプ(DMT)クエリは次のようになります。私は入れしようとしている
SELECT t1.deviceid, t1.devicetime, t1.latitude, t1.longitude
FROM positions t1
INNER JOIN
(SELECT MAX(id) as LatestGpsPoint
FROM positions
WHERE deviceid IN
(SELECT deviceid FROM device_group WHERE groupid = 7)
AND valid = 1
AND devicetime >= (SELECT deploymentdate
FROM devices
WHERE id = deviceid
LIMIT 1
)
GROUP BY deviceid
) t2
ON t1.id = t2.LatestGpsPoint
ORDER BY t1.deviceid ASC
LIMIT 0,100
IF ELSE ENDステートメントを使用して、t1.protocol = 'gl200'または 'dmt'に基づいて検索条件を変更します。