1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| # isole les AR doubles meilleurs par mode
insert into `rt_air_rail_5_23_reciproques` SELECT r1.`dNomOri`, r1.`dNomDes`, r1.`dNomConurbOri` , r1.`dNomConurbDes`, r1.`dHdep`, r1.`dHArr`, r1.`dTemps`, r1.`dTVeh`, r1.`dTMap`, r1.`dTAtt`, r1.`dTAtt1`, r1.`dPole`, r1.`dTexte`, r1.`dType`, r1.`tpsDispo`, r1.`aType`, r1.`aHdep`, r1.`aHArr`, r1.`aTemps`, r1.`aTVeh`, r1.`aTMap`, r1.`aTAtt`, r1.`atatt1`, r1.`aPole`, r1.`aTexte`, r1.`dId`, r1.`aId`, r1.`dOri`, r1.`dDes`, r1.`aOri`, r1.`aDes`, r1.`dConurbOri` , r1.`dConurbDes`, r1.dModeOri, r1.dModeDes, r1.`aNomOri`, r1.`aNomDes`, r1.orix, r1.oriy, r1.desx, r1.desy
FROM `rt_air_rail_5_23_valides_best_by_mode` r1
INNER JOIN `rt_air_rail_5_23_valides_best_by_mode` r2 ON
r1.`dConurbOri`=r2.`dConurbDes` and r1.`dConurbDes`=r2.`dConurbOri`;
#a ce stade tout est permis, y c un a-r fer et un ar réciproque air-air
# ne sortir que la meilleure combinaison modale sur un couple
# d'abord créer une table des meilleurs valeurs par couples
CREATE ALGORITHM = UNDEFINED VIEW `v_best_rt_5_23` AS select MAX(`tpsDispo`) as maxTpsDispo, `dconurbOri` ,`dconurbDes`, dnomconurbori, dnomconurbdes, dtype, dNomOri, dNomDes from `rt_air_rail_5_23_valides` group by `dconurbOri` ,`dconurbDes`;
# la table des meilleures combinaisons modales parmi les AR réciproques (inner pour seulement les concordances complètes)
# attention risque que les modes soient différents entre a-b et B-A
insert into `rt_air_rail_5_23_best_reciproques` SELECT r1.`dNomOri`, r1.`dNomDes`, r1.`dNomConurbOri` , r1.`dNomConurbDes`, r1.`dHdep`, r1.`dHArr`, r1.`dTemps`, r1.`dTVeh`, r1.`dTMap`, r1.`dTAtt`, r1.`dTAtt1`, r1.`dPole`, r1.`dTexte`, r1.`dType`, r1.`tpsDispo`, r1.`aType`, r1.`aHdep`, r1.`aHArr`, r1.`aTemps`, r1.`aTVeh`, r1.`aTMap`, r1.`aTAtt`, r1.`atatt1`, r1.`aPole`, r1.`aTexte`, r1.`dId`, r1.`aId`, r1.`dOri`, r1.`dDes`, r1.`aOri`, r1.`aDes`, r1.`dConurbOri` , r1.`dConurbDes`, r1.dModeOri, r1.dModeDes, r1.`aNomOri`, r1.`aNomDes`, r1.orix, r1.oriy, r1.desx, r1.desy
FROM `rt_air_rail_5_23_reciproques` r1
INNER JOIN `v_best_rt_5_23` # la plage horaire est maximale
r2 ON
r1.`dconurbOri` = r2.`dconurbOri` AND r1.`dconurbDes` = r2.`dconurbDes`
and r1.tpsdispo=r2.maxTpsDispo;
#une étape ultime pour enlever des doublons
insert into `rt_air_rail_5_23_best_reciproques_sd`
select distinct
`dNomOri`, `dNomDes`, `dNomConurbOri`, `dNomConurbDes`, `dHDep`, `dHArr`, `dTemps`, `dTVeh`, `dTMap`, `dTAtt`, `dTAtt1`, `dPole`, `dTexte`, `dType`, `tpsDispo`, `aType`, `aHdep`, `aHArr`, `aTemps`, `aTVeh`, `aTMap`, `aTAtt`, `aTAtt1`, `aPole`, `aTexte`, `dId`, `aId`, `dOri`, `dDes`, `aOri`, `aDes`, `dConurbOri`, `dConurbDes`, `dModeOri`, `dModeDes`, `aNomOri`, `aNomDes`, `orix`, `oriy`, `desx`, `desy`
from `rt_air_rail_5_23_best_reciproques`;
# les simples
insert into `rt_air_rail_5_23_simples` SELECT r1.`dNomOri`, r1.`dNomDes`, r1.`dNomConurbOri` , r1.`dNomConurbDes`, r1.`dHdep`, r1.`dHArr`, r1.`dTemps`, r1.`dTVeh`, r1.`dTMap`, r1.`dTAtt`, r1.`dTAtt1`, r1.`dPole`, r1.`dTexte`, r1.`dType`, r1.`tpsDispo`, r1.`aType`, r1.`aHdep`, r1.`aHArr`, r1.`aTemps`, r1.`aTVeh`, r1.`aTMap`, r1.`aTAtt`, r1.`atatt1`, r1.`aPole`, r1.`aTexte`, r1.`dId`, r1.`aId`, r1.`dOri`, r1.`dDes`, r1.`aOri`, r1.`aDes`, r1.`dConurbOri` , r1.`dConurbDes`, r1.dModeOri, r1.dModeDes, r1.`aNomOri`, r1.`aNomDes`, r1.orix, r1.oriy, r1.desx, r1.desy
FROM `rt_air_rail_5_23_valides_best_by_mode` r1
left JOIN `rt_air_rail_5_23_valides_best_by_mode` r2 ON
r1.`dConurbOri`=r2.`dConurbDes` and r1.`dConurbDes`=r2.`dConurbOri`
where r2.`dOri` is NULL;
#un AR simple n'a rien en réciproque, quel que soit le mode considéré, il n'y a rien de rien en face
insert into `rt_air_rail_5_23_best_simples` SELECT r1.`dNomOri`, r1.`dNomDes`, r1.`dNomConurbOri` , r1.`dNomConurbDes`, r1.`dHdep`, r1.`dHArr`, r1.`dTemps`, r1.`dTVeh`, r1.`dTMap`, r1.`dTAtt`, r1.`dTAtt1`, r1.`dPole`, r1.`dTexte`, r1.`dType`, r1.`tpsDispo`, r1.`aType`, r1.`aHdep`, r1.`aHArr`, r1.`aTemps`, r1.`aTVeh`, r1.`aTMap`, r1.`aTAtt`, r1.`atatt1`, r1.`aPole`, r1.`aTexte`, r1.`dId`, r1.`aId`, r1.`dOri`, r1.`dDes`, r1.`aOri`, r1.`aDes`, r1.`dConurbOri` , r1.`dConurbDes`, r1.dModeOri, r1.dModeDes, r1.`aNomOri`, r1.`aNomDes`, r1.orix, r1.oriy, r1.desx, r1.desy
FROM `rt_air_rail_5_23_simples` r1
INNER JOIN `v_best_rt_5_23` # la plage horaire est maximale
r2 ON
r1.`dconurbOri` = r2.`dconurbOri` AND r1.`dconurbDes` = r2.`dconurbDes`
and r1.tpsdispo=r2.maxTpsDispo;
#une étape ultime pour enlever des doublons
insert into `rt_air_rail_5_23_best_simples_sd`
select distinct
`dNomOri`, `dNomDes`, `dNomConurbOri`, `dNomConurbDes`, `dHDep`, `dHArr`, `dTemps`, `dTVeh`, `dTMap`, `dTAtt`, `dTAtt1`, `dPole`, `dTexte`, `dType`, `tpsDispo`, `aType`, `aHdep`, `aHArr`, `aTemps`, `aTVeh`, `aTMap`, `aTAtt`, `aTAtt1`, `aPole`, `aTexte`, `dId`, `aId`, `dOri`, `dDes`, `aOri`, `aDes`, `dConurbOri`, `dConurbDes`, `dModeOri`, `dModeDes`, `aNomOri`, `aNomDes`, `orix`, `oriy`, `desx`, `desy`
from rt_air_rail_5_23_best_simples;
#ne s'est pas avérée nécessaire celle ci !! |
Partager