Рекурсивный запрос в DB2

Discussion in 'PHP' started by Maytanet, 12 Jul 2011.

  1. Maytanet

    Maytanet New Member

    Joined:
    11 Jul 2011
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте, подскажите пожалуйста .
    1.select * from DNKBPF.PF where ECP_ST=19000 and 51000 between ECP1 and ECP2 with ur
    Тут я имею ECP_ST начало маршрута , 51000 это конец маршрута который находиться между ECP1 and ECP2 . Когда я делаю этот первый запрос то он мне из ECP1 and ECP2 находит маршрут и выдfет где он был остановлен ECP_NZ. Дальше я делаю другой запрос в котром ECP_NZ=ECP_ST.

    select * from DNKBPF.PF where ECP_ST=19380 and 51000 between ECP1 and ECP2 with ur

    В котором я заменяю то значение которое я находил в первом ECP_NZ=19380 на ECP_ST=19380 .
    Такие запросы я делаю пока ECP_NZ=51000.
    И вопрос в том как мне сделать один select который показывал бы все маршруты до конечной станции.
     
  2. Maytanet

    Maytanet New Member

    Joined:
    11 Jul 2011
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    with eh (ecp_st, ecp_nz) as (
    select p.ecp_st, p.ecp_nz
    from DNKBPF.PF P where p.ecp_st = 19000 and 51000 between p.ecp1 and p.ecp2
    union all
    select p.ecp_st, p.ecp_nz
    from DNKBPF.PF p, eh h where p.ecp_st = h.ecp_nz and 51000 between p.ecp1 and p.ecp2
    )
    select *
    from eh
    не понимал почему inner join в конце он не воспринимал.......
    а так все ок ) :D