Я сохранил в базе данных некоторые номера клиентов, назначенный ip, IP-адрес маршрутизатора, vlan и зону
No | ip | router | idZone | vlan |
---------------------------------------------------------------------
9600 | 10.95.65.100 | 10.10.10.26 | 2 | 105 |
9601 | 10.95.65.101 | 10.10.10.26 | 2 | 105 |
9602 | 10.95.65.102 | 10.10.10.27 | 2 | 107 |
16090 | 10.32.5.90 | 10.10.10.25 | 1 | 103 |
16091 | 10.32.5.91 | 10.10.10.25 | 1 | 103 |
16092 | 10.32.5.92 | 10.10.10.25 | 1 | 103 |
16093 | 10.32.5.93 | 10.10.10.25 | 1 | 103 |
16095 | 10.32.5.95 | 10.10.10.25 | 1 | 103 |
20100 | 10.20.10.200 | 10.10.10.32 | 3 | 109 |
Мне нужно указать, какие номера клиентов уже используются, сгруппированные по маршрутизатору, зонеи vlan, чтобы получить что-то вроде этого:
from | to | router | zone | vlan
-----------------------------------------------------
9600 | 9601 | 10.10.10.26 | 2 | 105 |
9602 | 9602 | 10.10.10.27 | 2 | 107 |
16090 | 16093 | 10.10.10.25 | 1 | 103 |
16095 | 16095 | 10.10.10.25 | 1 | 103 |
20100 | 20100 | 10.10.10.32 | 3 | 109 |
номера клиентов уникальны, прямо сейчас Мой запрос выглядит примерно так:
SELECT
MIN( no ) AS start_no,
MAX( no ) AS end_no,
router,
idZone,
vlan
FROM
address
GROUP BY
router,
idZone,
vlan
Но этот запрос не учитывает пропущенные точкимежду первым и последним, например, вместо
from | to | router | zone | vlan
--------------------------------------------------------
16090 | 16093 | 10.10.10.25 | 1 | 103 |
16095 | 16095 | 10.10.10.25 | 1 | 103 |
у меня будет
from | to | router | zone | vlan
-----------------------------------------------------
16090 | 16095 | 10.10.10.25 | 1 | 103 |
Что неверно, поскольку запись 16094 отсутствует в базе данных
Предложения?
Спасибо!