SQL : Différence entre versions

De Raildar
Aller à : navigation, rechercher
m (ajout de sémantique)
Ligne 1 : Ligne 1 :
Trouver les numéros de trains passant à 2 ou plusieurs gares  
+
= Trouver les numéros de trains passant à 2 ou plusieurs gares =
 
<code>
 
<code>
 
* select count(distinct(trains.num)) from trains, missions where missions.id_mission in (select id_mission from arrets where id_gare in (57, 59) group by id_mission having count(distinct id_gare) > 1) and missions.id_train = trains.id_train;
 
* select count(distinct(trains.num)) from trains, missions where missions.id_mission in (select id_mission from arrets where id_gare in (57, 59) group by id_mission having count(distinct id_gare) > 1) and missions.id_train = trains.id_train;
 
</code>
 
</code>
Distance entre une geom et un point (en kilomètres) :
+
 
 +
= Distance entre une geom et un point (en kilomètres) =
 
<code>
 
<code>
 
* st_distance_sphere(geom_gare, st_geomfromtext('point(3.43 47.3)', 4326))/1000
 
* st_distance_sphere(geom_gare, st_geomfromtext('point(3.43 47.3)', 4326))/1000
 
</code>
 
</code>
  
Conversion Lambert II étendu => GPS :
+
= Conversion Lambert II étendu => GPS =
 
<code>
 
<code>
 
* select st_astext(st_transform(st_geomfromtext('point(592777 2432635)', 27582), 4326));
 
* select st_astext(st_transform(st_geomfromtext('point(592777 2432635)', 27582), 4326));
 
</code>
 
</code>
  
Calcul du CRC des codes ICU à partir du code DUA
+
= Calcul du CRC des codes ICU à partir du code DUA =
 
* Code sous la forme ppsssssx
 
* Code sous la forme ppsssssx
 
* faire la somme : 2 s0 + s1 + 2 s2 + s3 + 2 s4
 
* faire la somme : 2 s0 + s1 + 2 s2 + s3 + 2 s4

Version du 14 janvier 2014 à 09:08

Trouver les numéros de trains passant à 2 ou plusieurs gares

  • select count(distinct(trains.num)) from trains, missions where missions.id_mission in (select id_mission from arrets where id_gare in (57, 59) group by id_mission having count(distinct id_gare) > 1) and missions.id_train = trains.id_train;

Distance entre une geom et un point (en kilomètres)

  • st_distance_sphere(geom_gare, st_geomfromtext('point(3.43 47.3)', 4326))/1000

Conversion Lambert II étendu => GPS

  • select st_astext(st_transform(st_geomfromtext('point(592777 2432635)', 27582), 4326));

Calcul du CRC des codes ICU à partir du code DUA

  • Code sous la forme ppsssssx
  • faire la somme : 2 s0 + s1 + 2 s2 + s3 + 2 s4
  • si s0 >= 5 alors ajouter 1 à la somme
  • si s2 >= 5 alors ajouter 1 à la somme également
  • si s4 >= 5 alors ajouter 1 à la somme aussi
  • x = modulo 10 du resultat