j'ai deux fichiers un des ville avec comme clef le numero insee des
villes et un département avec le numero de département comme clef
dans le fichier département il y a un champ contenant le numero insee
de la ville prefecture
comment sortir la liste des villes avec le nom de la ville prefecture
en face?
Ce courrier électronique ne contient aucun virus ou logiciel
malveillant parce que la protection avast! Antivirus est active.
http://www.avast.com
j'ai deux fichiers un des ville avec comme clef le numero insee des
villes et un département avec le numero de département comme clef
dans le fichier département il y a un champ contenant le numero insee
de la ville prefecture
comment sortir la liste des villes avec le nom de la ville prefecture
en face?
Ce courrier électronique ne contient aucun virus ou logiciel
malveillant parce que la protection avast! Antivirus est active.
http://www.avast.com
j'ai deux fichiers un des ville avec comme clef le numero insee des
villes et un département avec le numero de département comme clef
dans le fichier département il y a un champ contenant le numero insee
de la ville prefecture
comment sortir la liste des villes avec le nom de la ville prefecture
en face?
Ce courrier électronique ne contient aucun virus ou logiciel
malveillant parce que la protection avast! Antivirus est active.
http://www.avast.com
j'ai deux fichiers un des ville avec comme clef le numero insee des
villes et un département avec le numero de département comme clef
dans le fichier département il y a un champ contenant le numero insee de
la ville prefecture
comment sortir la liste des villes avec le nom de la ville prefecture en
face?
exemple
le fichier ville contient un article 59307 et l'article département 59
contient 59008
j'ai deux fichiers un des ville avec comme clef le numero insee des
villes et un département avec le numero de département comme clef
dans le fichier département il y a un champ contenant le numero insee de
la ville prefecture
comment sortir la liste des villes avec le nom de la ville prefecture en
face?
exemple
le fichier ville contient un article 59307 et l'article département 59
contient 59008
j'ai deux fichiers un des ville avec comme clef le numero insee des
villes et un département avec le numero de département comme clef
dans le fichier département il y a un champ contenant le numero insee de
la ville prefecture
comment sortir la liste des villes avec le nom de la ville prefecture en
face?
exemple
le fichier ville contient un article 59307 et l'article département 59
contient 59008
roseline (Fri, 12 Dec 2014 09:46:19 +0100 - fr.comp.applications.sgbd) :j'ai deux fichiers un des ville avec comme clef le numero insee des
villes et un département avec le numero de département comme clef
dans le fichier département il y a un champ contenant le numero insee de
la ville prefecture
Ça donne donc deux fichiers, ou tables suivant la terminologie liée au
moteur de bases de données utilisés :
- Villes :
vi_Code_insee
vi_Nom
- Departements :
dp_Numero
dp_Nom
dp_Code_insee_préfecture
comment sortir la liste des villes avec le nom de la ville préfecture en
face?
On ne peut pas. Si on suppose que la question est « obtenir la liste des
départements avec le nom de la ville préfecture en face », ça devient
réalisable.
exemple
le fichier ville contient un article 59307 et l'article département 59
contient 59008
Je n'ai rien compris à l'exemple :)
vi_Code_insee = 59307
vi_Nom = LIGNY
- Departements :
dp_Numero = 59
dp_Nom = NORD
dp_Code_insee_préfecture = 59008
roseline (Fri, 12 Dec 2014 09:46:19 +0100 - fr.comp.applications.sgbd) :
j'ai deux fichiers un des ville avec comme clef le numero insee des
villes et un département avec le numero de département comme clef
dans le fichier département il y a un champ contenant le numero insee de
la ville prefecture
Ça donne donc deux fichiers, ou tables suivant la terminologie liée au
moteur de bases de données utilisés :
- Villes :
vi_Code_insee
vi_Nom
- Departements :
dp_Numero
dp_Nom
dp_Code_insee_préfecture
comment sortir la liste des villes avec le nom de la ville préfecture en
face?
On ne peut pas. Si on suppose que la question est « obtenir la liste des
départements avec le nom de la ville préfecture en face », ça devient
réalisable.
exemple
le fichier ville contient un article 59307 et l'article département 59
contient 59008
Je n'ai rien compris à l'exemple :)
vi_Code_insee = 59307
vi_Nom = LIGNY
- Departements :
dp_Numero = 59
dp_Nom = NORD
dp_Code_insee_préfecture = 59008
roseline (Fri, 12 Dec 2014 09:46:19 +0100 - fr.comp.applications.sgbd) :j'ai deux fichiers un des ville avec comme clef le numero insee des
villes et un département avec le numero de département comme clef
dans le fichier département il y a un champ contenant le numero insee de
la ville prefecture
Ça donne donc deux fichiers, ou tables suivant la terminologie liée au
moteur de bases de données utilisés :
- Villes :
vi_Code_insee
vi_Nom
- Departements :
dp_Numero
dp_Nom
dp_Code_insee_préfecture
comment sortir la liste des villes avec le nom de la ville préfecture en
face?
On ne peut pas. Si on suppose que la question est « obtenir la liste des
départements avec le nom de la ville préfecture en face », ça devient
réalisable.
exemple
le fichier ville contient un article 59307 et l'article département 59
contient 59008
Je n'ai rien compris à l'exemple :)
vi_Code_insee = 59307
vi_Nom = LIGNY
- Departements :
dp_Numero = 59
dp_Nom = NORD
dp_Code_insee_préfecture = 59008
Le 12/12/2014 18:09, Eric Demeester a écrit :> Bonjour,
>
> roseline (Fri, 12 Dec 2014 09:46:19 +0100 - fr.comp.applications.sgbd) :
>
>> j'ai deux fichiers un des ville avec comme clef le numero insee des
>> villes et un département avec le numero de département comme clef
>>
>> dans le fichier département il y a un champ contenant le numero
insee de
>> la ville prefecture
>
> Ça donne donc deux fichiers, ou tables suivant la terminologie liée au
> moteur de bases de données utilisés :
>
> - Villes :
> vi_Code_insee
> vi_Nom
>
> - Departements :
> dp_Numero
> dp_Nom
> dp_Code_insee_préfecture
>
oui
>> comment sortir la liste des villes avec le nom de la ville
préfecture en
>> face?
>
> On ne peut pas. Si on suppose que la question est « obtenir la liste des
> départements avec le nom de la ville préfecture en face », ça devient
> réalisable.
>
la question est obtenir une liste ville avec en face le nom de la
préfecture de leur département
>
>> exemple
>>
>> le fichier ville contient un article 59307 et l'article département 59
>> contient 59008
>
> Je n'ai rien compris à l'exemple :)
>
Villes :
> vi_Code_insee = 59307
> vi_Nom = LIGNY
>
> - Departements :
> dp_Numero = 59
> dp_Nom = NORD
> dp_Code_insee_préfecture = 59008
donc pour QUELQUES VILLES DE NORD-PICARDIE CELA DONNE
ST QUENTIN LAON
VERVIN LAON
BOHAIN LAON
LIGNY LILLE
CAMBRAI LILLE
MAUBEUGE LILLE
LENS ARRAS
BETHUNE ARRAS
CREIL BEAUVAIS
COMPIEGNE BEAUVAIS
SENLIS BEAUVAIS
DURY AMIENS
PERRONNES AMIENS
ROYE AMIENS
---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant
parce que la protection avast! Antivirus est active.
http://www.avast.com
Le 12/12/2014 18:09, Eric Demeester a écrit :> Bonjour,
>
> roseline (Fri, 12 Dec 2014 09:46:19 +0100 - fr.comp.applications.sgbd) :
>
>> j'ai deux fichiers un des ville avec comme clef le numero insee des
>> villes et un département avec le numero de département comme clef
>>
>> dans le fichier département il y a un champ contenant le numero
insee de
>> la ville prefecture
>
> Ça donne donc deux fichiers, ou tables suivant la terminologie liée au
> moteur de bases de données utilisés :
>
> - Villes :
> vi_Code_insee
> vi_Nom
>
> - Departements :
> dp_Numero
> dp_Nom
> dp_Code_insee_préfecture
>
oui
>> comment sortir la liste des villes avec le nom de la ville
préfecture en
>> face?
>
> On ne peut pas. Si on suppose que la question est « obtenir la liste des
> départements avec le nom de la ville préfecture en face », ça devient
> réalisable.
>
la question est obtenir une liste ville avec en face le nom de la
préfecture de leur département
>
>> exemple
>>
>> le fichier ville contient un article 59307 et l'article département 59
>> contient 59008
>
> Je n'ai rien compris à l'exemple :)
>
Villes :
> vi_Code_insee = 59307
> vi_Nom = LIGNY
>
> - Departements :
> dp_Numero = 59
> dp_Nom = NORD
> dp_Code_insee_préfecture = 59008
donc pour QUELQUES VILLES DE NORD-PICARDIE CELA DONNE
ST QUENTIN LAON
VERVIN LAON
BOHAIN LAON
LIGNY LILLE
CAMBRAI LILLE
MAUBEUGE LILLE
LENS ARRAS
BETHUNE ARRAS
CREIL BEAUVAIS
COMPIEGNE BEAUVAIS
SENLIS BEAUVAIS
DURY AMIENS
PERRONNES AMIENS
ROYE AMIENS
---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant
parce que la protection avast! Antivirus est active.
http://www.avast.com
Le 12/12/2014 18:09, Eric Demeester a écrit :> Bonjour,
>
> roseline (Fri, 12 Dec 2014 09:46:19 +0100 - fr.comp.applications.sgbd) :
>
>> j'ai deux fichiers un des ville avec comme clef le numero insee des
>> villes et un département avec le numero de département comme clef
>>
>> dans le fichier département il y a un champ contenant le numero
insee de
>> la ville prefecture
>
> Ça donne donc deux fichiers, ou tables suivant la terminologie liée au
> moteur de bases de données utilisés :
>
> - Villes :
> vi_Code_insee
> vi_Nom
>
> - Departements :
> dp_Numero
> dp_Nom
> dp_Code_insee_préfecture
>
oui
>> comment sortir la liste des villes avec le nom de la ville
préfecture en
>> face?
>
> On ne peut pas. Si on suppose que la question est « obtenir la liste des
> départements avec le nom de la ville préfecture en face », ça devient
> réalisable.
>
la question est obtenir une liste ville avec en face le nom de la
préfecture de leur département
>
>> exemple
>>
>> le fichier ville contient un article 59307 et l'article département 59
>> contient 59008
>
> Je n'ai rien compris à l'exemple :)
>
Villes :
> vi_Code_insee = 59307
> vi_Nom = LIGNY
>
> - Departements :
> dp_Numero = 59
> dp_Nom = NORD
> dp_Code_insee_préfecture = 59008
donc pour QUELQUES VILLES DE NORD-PICARDIE CELA DONNE
ST QUENTIN LAON
VERVIN LAON
BOHAIN LAON
LIGNY LILLE
CAMBRAI LILLE
MAUBEUGE LILLE
LENS ARRAS
BETHUNE ARRAS
CREIL BEAUVAIS
COMPIEGNE BEAUVAIS
SENLIS BEAUVAIS
DURY AMIENS
PERRONNES AMIENS
ROYE AMIENS
---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant
parce que la protection avast! Antivirus est active.
http://www.avast.com
Le 12/12/2014 18:09, Eric Demeester a écrit :> Bonjour,
>
> roseline (Fri, 12 Dec 2014 09:46:19 +0100 - fr.comp.applications.sgbd) :
>
>> j'ai deux fichiers un des ville avec comme clef le numero insee des
>> villes et un département avec le numero de département comme clef
>>
>> dans le fichier département il y a un champ contenant le numero
insee de
>> la ville prefecture
>
> Ça donne donc deux fichiers, ou tables suivant la terminologie liée au
> moteur de bases de données utilisés :
>
> - Villes :
> vi_Code_insee
> vi_Nom
>
> - Departements :
> dp_Numero
> dp_Nom
> dp_Code_insee_préfecture
>
oui
>> comment sortir la liste des villes avec le nom de la ville
préfecture en
>> face?
>
> On ne peut pas. Si on suppose que la question est « obtenir la liste des
> départements avec le nom de la ville préfecture en face », ça devient
> réalisable.
>
la question est obtenir une liste ville avec en face le nom de la
préfecture de leur département
>
>> exemple
>>
>> le fichier ville contient un article 59307 et l'article département 59
>> contient 59008
>
> Je n'ai rien compris à l'exemple :)
>
Villes :
> vi_Code_insee = 59307
> vi_Nom = LIGNY
>
> - Departements :
> dp_Numero = 59
> dp_Nom = NORD
> dp_Code_insee_préfecture = 59008
donc pour QUELQUES VILLES DE NORD-PICARDIE CELA DONNE
ST QUENTIN LAON
VERVIN LAON
BOHAIN LAON
LIGNY LILLE
CAMBRAI LILLE
MAUBEUGE LILLE
LENS ARRAS
BETHUNE ARRAS
CREIL BEAUVAIS
COMPIEGNE BEAUVAIS
SENLIS BEAUVAIS
DURY AMIENS
PERRONNES AMIENS
ROYE AMIENS
---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant
parce que la protection avast! Antivirus est active.
http://www.avast.com
Le 12/12/2014 18:09, Eric Demeester a écrit :> Bonjour,
>
> roseline (Fri, 12 Dec 2014 09:46:19 +0100 - fr.comp.applications.sgbd) :
>
>> j'ai deux fichiers un des ville avec comme clef le numero insee des
>> villes et un département avec le numero de département comme clef
>>
>> dans le fichier département il y a un champ contenant le numero
insee de
>> la ville prefecture
>
> Ça donne donc deux fichiers, ou tables suivant la terminologie liée au
> moteur de bases de données utilisés :
>
> - Villes :
> vi_Code_insee
> vi_Nom
>
> - Departements :
> dp_Numero
> dp_Nom
> dp_Code_insee_préfecture
>
oui
>> comment sortir la liste des villes avec le nom de la ville
préfecture en
>> face?
>
> On ne peut pas. Si on suppose que la question est « obtenir la liste des
> départements avec le nom de la ville préfecture en face », ça devient
> réalisable.
>
la question est obtenir une liste ville avec en face le nom de la
préfecture de leur département
>
>> exemple
>>
>> le fichier ville contient un article 59307 et l'article département 59
>> contient 59008
>
> Je n'ai rien compris à l'exemple :)
>
Villes :
> vi_Code_insee = 59307
> vi_Nom = LIGNY
>
> - Departements :
> dp_Numero = 59
> dp_Nom = NORD
> dp_Code_insee_préfecture = 59008
donc pour QUELQUES VILLES DE NORD-PICARDIE CELA DONNE
ST QUENTIN LAON
VERVIN LAON
BOHAIN LAON
LIGNY LILLE
CAMBRAI LILLE
MAUBEUGE LILLE
LENS ARRAS
BETHUNE ARRAS
CREIL BEAUVAIS
COMPIEGNE BEAUVAIS
SENLIS BEAUVAIS
DURY AMIENS
PERRONNES AMIENS
ROYE AMIENS
---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant
parce que la protection avast! Antivirus est active.
http://www.avast.com
Le 12/12/2014 18:09, Eric Demeester a écrit :> Bonjour,
>
> roseline (Fri, 12 Dec 2014 09:46:19 +0100 - fr.comp.applications.sgbd) :
>
>> j'ai deux fichiers un des ville avec comme clef le numero insee des
>> villes et un département avec le numero de département comme clef
>>
>> dans le fichier département il y a un champ contenant le numero
insee de
>> la ville prefecture
>
> Ça donne donc deux fichiers, ou tables suivant la terminologie liée au
> moteur de bases de données utilisés :
>
> - Villes :
> vi_Code_insee
> vi_Nom
>
> - Departements :
> dp_Numero
> dp_Nom
> dp_Code_insee_préfecture
>
oui
>> comment sortir la liste des villes avec le nom de la ville
préfecture en
>> face?
>
> On ne peut pas. Si on suppose que la question est « obtenir la liste des
> départements avec le nom de la ville préfecture en face », ça devient
> réalisable.
>
la question est obtenir une liste ville avec en face le nom de la
préfecture de leur département
>
>> exemple
>>
>> le fichier ville contient un article 59307 et l'article département 59
>> contient 59008
>
> Je n'ai rien compris à l'exemple :)
>
Villes :
> vi_Code_insee = 59307
> vi_Nom = LIGNY
>
> - Departements :
> dp_Numero = 59
> dp_Nom = NORD
> dp_Code_insee_préfecture = 59008
donc pour QUELQUES VILLES DE NORD-PICARDIE CELA DONNE
ST QUENTIN LAON
VERVIN LAON
BOHAIN LAON
LIGNY LILLE
CAMBRAI LILLE
MAUBEUGE LILLE
LENS ARRAS
BETHUNE ARRAS
CREIL BEAUVAIS
COMPIEGNE BEAUVAIS
SENLIS BEAUVAIS
DURY AMIENS
PERRONNES AMIENS
ROYE AMIENS
---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant
parce que la protection avast! Antivirus est active.
http://www.avast.com
la question est obtenir une liste ville avec en face le nom de la
préfecture de leur département
Villes :
> vi_Code_insee = 59307
> vi_Nom = LIGNY
>
> - Departements :
> dp_Numero = 59
> dp_Nom = NORD
> dp_Code_insee_préfecture = 59008
donc pour QUELQUES VILLES DE NORD-PICARDIE CELA DONNE
ST QUENTIN LAON
VERVIN LAON
BOHAIN LAON
LIGNY LILLE
CAMBRAI LILLE
MAUBEUGE LILLE
la question est obtenir une liste ville avec en face le nom de la
préfecture de leur département
Villes :
> vi_Code_insee = 59307
> vi_Nom = LIGNY
>
> - Departements :
> dp_Numero = 59
> dp_Nom = NORD
> dp_Code_insee_préfecture = 59008
donc pour QUELQUES VILLES DE NORD-PICARDIE CELA DONNE
ST QUENTIN LAON
VERVIN LAON
BOHAIN LAON
LIGNY LILLE
CAMBRAI LILLE
MAUBEUGE LILLE
la question est obtenir une liste ville avec en face le nom de la
préfecture de leur département
Villes :
> vi_Code_insee = 59307
> vi_Nom = LIGNY
>
> - Departements :
> dp_Numero = 59
> dp_Nom = NORD
> dp_Code_insee_préfecture = 59008
donc pour QUELQUES VILLES DE NORD-PICARDIE CELA DONNE
ST QUENTIN LAON
VERVIN LAON
BOHAIN LAON
LIGNY LILLE
CAMBRAI LILLE
MAUBEUGE LILLE
Bonjour,
roseline (Fri, 12 Dec 2014 19:02:48 +0100 - fr.comp.applications.sgbd) :la question est obtenir une liste ville avec en face le nom de la
préfecture de leur département
D'accord.Villes :
> vi_Code_insee = 59307
> vi_Nom = LIGNY
>
> - Departements :
> dp_Numero = 59
> dp_Nom = NORD
> dp_Code_insee_préfecture = 59008donc pour QUELQUES VILLES DE NORD-PICARDIE CELA DONNE
ST QUENTIN LAON
VERVIN LAON
BOHAIN LAON
LIGNY LILLE
CAMBRAI LILLE
MAUBEUGE LILLE
[...]
Dans ce cas, il faut un indicateur supplémentaire permettant de
connaitre à quel département appartient la ville, on admettra qu'il n'y
a qu'une préfecture par département.
Cet indicateur sera le numéro du département (dp_Numero). Les opérations
de ce type étant généralement plus simples à réaliser sur les chaînes
que sur les numériques, on va compléter la définition de nos champs :
Villes :
vi_Code_insee CHAÎNE (5 caractères)
vi_Nom CHAÎNE (150 caractères)
Departements :
dp_Numero CHAÎNE (2 caractères)
dp_Nom CHAÎNE (150 caractères)
dp_Code_insee_prefecture CHAÎNE (5 caractères)
Il y a plusieurs façons de procéder. L'une d'entre elles est de lire le
fichier des départements, pour chaque département de rechercher la
préfecture qu'on stockera dans une variable, puis de lire le fichier des
villes en ordre croissant des noms de villes, en sélectionnant celles
dont le code Insee débute par le numéro du département concerné.
Pour faire plus joli, on peut ajouter le numéro du département à
l'affichage.
// Variable de stockage du nom de la préfecture
NOM_PREFECTURE est une chaîne de 150 caractères
POUR dp_Numero = premier à dernier par ordre croissant des numéros
RECHERCHER dans Villes la ville ou vi_Code_insee > dp_Code_insee_prefecture
SI TROUVE ALORS
NOM_PREFECTURE = vi_Nom
POUR vi_Nom = premier à dernier par ordre alphabétique croissant
SI GAUCHE(vi_Code_insee, 2) = dp_Numero ALORS
AFFICHER dp_Numero, vi_Nom, NOM_PREFECTURE
FIN
vi_Nom SUIVANT
SINON
AFFICHER 'erreur - code préfecture non trouvé dans Villes'
FIN
dp_Numero SUIVANT
Notez que cet exemple ne permet pas de traiter correctement les 5
départements d'Outre-mer, puisque ces derniers sont codés sur 3
caractères :
http://fr.wikipedia.org/wiki/D%C3%A9partement_et_r%C3%A9gion_d%27outre-mer
Si vous devez les traiter aussi, c'est probablement possible en
modifiant l'algorithme, car ces trois caractères se retrouvent dans la
partie gauche du code de la préfecture. La sélection des villes devra
dans ce cas se faire sur 3+2 au lieu de 2+3.
Vous pourrez essayer une fois que le premier traitement fonctionnera :)
Bonjour,
roseline (Fri, 12 Dec 2014 19:02:48 +0100 - fr.comp.applications.sgbd) :
la question est obtenir une liste ville avec en face le nom de la
préfecture de leur département
D'accord.
Villes :
> vi_Code_insee = 59307
> vi_Nom = LIGNY
>
> - Departements :
> dp_Numero = 59
> dp_Nom = NORD
> dp_Code_insee_préfecture = 59008
donc pour QUELQUES VILLES DE NORD-PICARDIE CELA DONNE
ST QUENTIN LAON
VERVIN LAON
BOHAIN LAON
LIGNY LILLE
CAMBRAI LILLE
MAUBEUGE LILLE
[...]
Dans ce cas, il faut un indicateur supplémentaire permettant de
connaitre à quel département appartient la ville, on admettra qu'il n'y
a qu'une préfecture par département.
Cet indicateur sera le numéro du département (dp_Numero). Les opérations
de ce type étant généralement plus simples à réaliser sur les chaînes
que sur les numériques, on va compléter la définition de nos champs :
Villes :
vi_Code_insee CHAÎNE (5 caractères)
vi_Nom CHAÎNE (150 caractères)
Departements :
dp_Numero CHAÎNE (2 caractères)
dp_Nom CHAÎNE (150 caractères)
dp_Code_insee_prefecture CHAÎNE (5 caractères)
Il y a plusieurs façons de procéder. L'une d'entre elles est de lire le
fichier des départements, pour chaque département de rechercher la
préfecture qu'on stockera dans une variable, puis de lire le fichier des
villes en ordre croissant des noms de villes, en sélectionnant celles
dont le code Insee débute par le numéro du département concerné.
Pour faire plus joli, on peut ajouter le numéro du département à
l'affichage.
// Variable de stockage du nom de la préfecture
NOM_PREFECTURE est une chaîne de 150 caractères
POUR dp_Numero = premier à dernier par ordre croissant des numéros
RECHERCHER dans Villes la ville ou vi_Code_insee > dp_Code_insee_prefecture
SI TROUVE ALORS
NOM_PREFECTURE = vi_Nom
POUR vi_Nom = premier à dernier par ordre alphabétique croissant
SI GAUCHE(vi_Code_insee, 2) = dp_Numero ALORS
AFFICHER dp_Numero, vi_Nom, NOM_PREFECTURE
FIN
vi_Nom SUIVANT
SINON
AFFICHER 'erreur - code préfecture non trouvé dans Villes'
FIN
dp_Numero SUIVANT
Notez que cet exemple ne permet pas de traiter correctement les 5
départements d'Outre-mer, puisque ces derniers sont codés sur 3
caractères :
http://fr.wikipedia.org/wiki/D%C3%A9partement_et_r%C3%A9gion_d%27outre-mer
Si vous devez les traiter aussi, c'est probablement possible en
modifiant l'algorithme, car ces trois caractères se retrouvent dans la
partie gauche du code de la préfecture. La sélection des villes devra
dans ce cas se faire sur 3+2 au lieu de 2+3.
Vous pourrez essayer une fois que le premier traitement fonctionnera :)
Bonjour,
roseline (Fri, 12 Dec 2014 19:02:48 +0100 - fr.comp.applications.sgbd) :la question est obtenir une liste ville avec en face le nom de la
préfecture de leur département
D'accord.Villes :
> vi_Code_insee = 59307
> vi_Nom = LIGNY
>
> - Departements :
> dp_Numero = 59
> dp_Nom = NORD
> dp_Code_insee_préfecture = 59008donc pour QUELQUES VILLES DE NORD-PICARDIE CELA DONNE
ST QUENTIN LAON
VERVIN LAON
BOHAIN LAON
LIGNY LILLE
CAMBRAI LILLE
MAUBEUGE LILLE
[...]
Dans ce cas, il faut un indicateur supplémentaire permettant de
connaitre à quel département appartient la ville, on admettra qu'il n'y
a qu'une préfecture par département.
Cet indicateur sera le numéro du département (dp_Numero). Les opérations
de ce type étant généralement plus simples à réaliser sur les chaînes
que sur les numériques, on va compléter la définition de nos champs :
Villes :
vi_Code_insee CHAÎNE (5 caractères)
vi_Nom CHAÎNE (150 caractères)
Departements :
dp_Numero CHAÎNE (2 caractères)
dp_Nom CHAÎNE (150 caractères)
dp_Code_insee_prefecture CHAÎNE (5 caractères)
Il y a plusieurs façons de procéder. L'une d'entre elles est de lire le
fichier des départements, pour chaque département de rechercher la
préfecture qu'on stockera dans une variable, puis de lire le fichier des
villes en ordre croissant des noms de villes, en sélectionnant celles
dont le code Insee débute par le numéro du département concerné.
Pour faire plus joli, on peut ajouter le numéro du département à
l'affichage.
// Variable de stockage du nom de la préfecture
NOM_PREFECTURE est une chaîne de 150 caractères
POUR dp_Numero = premier à dernier par ordre croissant des numéros
RECHERCHER dans Villes la ville ou vi_Code_insee > dp_Code_insee_prefecture
SI TROUVE ALORS
NOM_PREFECTURE = vi_Nom
POUR vi_Nom = premier à dernier par ordre alphabétique croissant
SI GAUCHE(vi_Code_insee, 2) = dp_Numero ALORS
AFFICHER dp_Numero, vi_Nom, NOM_PREFECTURE
FIN
vi_Nom SUIVANT
SINON
AFFICHER 'erreur - code préfecture non trouvé dans Villes'
FIN
dp_Numero SUIVANT
Notez que cet exemple ne permet pas de traiter correctement les 5
départements d'Outre-mer, puisque ces derniers sont codés sur 3
caractères :
http://fr.wikipedia.org/wiki/D%C3%A9partement_et_r%C3%A9gion_d%27outre-mer
Si vous devez les traiter aussi, c'est probablement possible en
modifiant l'algorithme, car ces trois caractères se retrouvent dans la
partie gauche du code de la préfecture. La sélection des villes devra
dans ce cas se faire sur 3+2 au lieu de 2+3.
Vous pourrez essayer une fois que le premier traitement fonctionnera :)
Le 13/12/2014 14:41, Eric Demeester a écrit :
> Dans ce cas, il faut un indicateur supplémentaire permettant de
> connaitre à quel département appartient la ville, on admettra qu'il n'y
> a qu'une préfecture par département.
non le numero du département d'une ville est les deux premiers chiffres
de son numero INSEE et il y a toujours qu'une préfecture par département
> // Variable de stockage du nom de la préfecture
> NOM_PREFECTURE est une chaîne de 150 caractères
>
> POUR dp_Numero = premier à dernier par ordre croissant des numéros
> RECHERCHER dans Villes la ville ou vi_Code_insee > > dp_Code_insee_prefecture
> SI TROUVE ALORS
> NOM_PREFECTURE = vi_Nom
> POUR vi_Nom = premier à dernier par ordre alphabétique croissant
> SI GAUCHE(vi_Code_insee, 2) = dp_Numero ALORS
> AFFICHER dp_Numero, vi_Nom, NOM_PREFECTURE
> FIN
> vi_Nom SUIVANT
> SINON
> AFFICHER 'erreur - code préfecture non trouvé dans Villes'
> FIN
> dp_Numero SUIVANT
>
mais cela ne permet pas de classer par ordre alphabétique les villes par
exemple a moins de lire 33000fois le fichier des départements
Le 13/12/2014 14:41, Eric Demeester a écrit :
> Dans ce cas, il faut un indicateur supplémentaire permettant de
> connaitre à quel département appartient la ville, on admettra qu'il n'y
> a qu'une préfecture par département.
non le numero du département d'une ville est les deux premiers chiffres
de son numero INSEE et il y a toujours qu'une préfecture par département
> // Variable de stockage du nom de la préfecture
> NOM_PREFECTURE est une chaîne de 150 caractères
>
> POUR dp_Numero = premier à dernier par ordre croissant des numéros
> RECHERCHER dans Villes la ville ou vi_Code_insee > > dp_Code_insee_prefecture
> SI TROUVE ALORS
> NOM_PREFECTURE = vi_Nom
> POUR vi_Nom = premier à dernier par ordre alphabétique croissant
> SI GAUCHE(vi_Code_insee, 2) = dp_Numero ALORS
> AFFICHER dp_Numero, vi_Nom, NOM_PREFECTURE
> FIN
> vi_Nom SUIVANT
> SINON
> AFFICHER 'erreur - code préfecture non trouvé dans Villes'
> FIN
> dp_Numero SUIVANT
>
mais cela ne permet pas de classer par ordre alphabétique les villes par
exemple a moins de lire 33000fois le fichier des départements
Le 13/12/2014 14:41, Eric Demeester a écrit :
> Dans ce cas, il faut un indicateur supplémentaire permettant de
> connaitre à quel département appartient la ville, on admettra qu'il n'y
> a qu'une préfecture par département.
non le numero du département d'une ville est les deux premiers chiffres
de son numero INSEE et il y a toujours qu'une préfecture par département
> // Variable de stockage du nom de la préfecture
> NOM_PREFECTURE est une chaîne de 150 caractères
>
> POUR dp_Numero = premier à dernier par ordre croissant des numéros
> RECHERCHER dans Villes la ville ou vi_Code_insee > > dp_Code_insee_prefecture
> SI TROUVE ALORS
> NOM_PREFECTURE = vi_Nom
> POUR vi_Nom = premier à dernier par ordre alphabétique croissant
> SI GAUCHE(vi_Code_insee, 2) = dp_Numero ALORS
> AFFICHER dp_Numero, vi_Nom, NOM_PREFECTURE
> FIN
> vi_Nom SUIVANT
> SINON
> AFFICHER 'erreur - code préfecture non trouvé dans Villes'
> FIN
> dp_Numero SUIVANT
>
mais cela ne permet pas de classer par ordre alphabétique les villes par
exemple a moins de lire 33000fois le fichier des départements
roseline (Sat, 13 Dec 2014 16:17:05 +0100 - fr.comp.applications.sgbd) :Le 13/12/2014 14:41, Eric Demeester a écrit :Dans ce cas, il faut un indicateur supplémentaire permettant de
connaitre à quel département appartient la ville, on admettra qu'il n'y
a qu'une préfecture par département.
non le numero du département d'une ville est les deux premiers chiffres
de son numero INSEE et il y a toujours qu'une préfecture par département
Je disais pile-poil la même chose, hein.// Variable de stockage du nom de la préfecture
NOM_PREFECTURE est une chaîne de 150 caractères
POUR dp_Numero = premier à dernier par ordre croissant des numéros
RECHERCHER dans Villes la ville ou vi_Code_insee >>> dp_Code_insee_prefecture
SI TROUVE ALORS
NOM_PREFECTURE = vi_Nom
POUR vi_Nom = premier à dernier par ordre alphabétique croissant
SI GAUCHE(vi_Code_insee, 2) = dp_Numero ALORS
AFFICHER dp_Numero, vi_Nom, NOM_PREFECTURE
FIN
vi_Nom SUIVANT
SINON
AFFICHER 'erreur - code préfecture non trouvé dans Villes'
FIN
dp_Numero SUIVANTmais cela ne permet pas de classer par ordre alphabétique les villes par
exemple a moins de lire 33000fois le fichier des départements
Dans mon exemple, on parcourt le fichier des départements une seule fois
par ordre croissant des départements, puis pour chaque département, on
parcourt le fichier des villes en ordre alphabétique, en filtrant sur le
numéro de département.
On obtient une liste classée par ordre croissant des départements, et
pour chaque département, par ordre alphabétique des villes.
Si vous voulez obtenir une liste triée en ordre alphabétique croissant
des villes, c'est le fichier des villes qui ne sera lu qu'une fois et on
cherchera la préfecture correspondant au code Insee de chaque ville dans
le fichier des départements.
Le problème, c'est qu'on va à la fois parcourir le fichier des villes
par ordre alphabétique croissant, et, pour chaque ville, lire le fichier
des départements selon les 2 caractères de gauche du code Insee pour
récupérer le code Insee de la préfecture, par recherche du nom de la
préfecture correspondante dans le fichier des villes.
Du coup on perd le pointeur de parcours sur le fichier des villes. Euh,
je ne sais pas si c'est très clair :)
Là, on a plusieurs solutions :
- mémoriser le pointeur de parcours du fichier Villes pour reprendre
le parcours au bon endroit (un peu acrobatique) ;
- ajouter le nom de la préfecture dans le fichier des départements
(on n'aime pas stocker d'informations redondantes) ;
- créer une table de liaison Prefectures, éventuellement en mémoire,
qui servira de jointure.
- Prefectures :
pr_Code_insee CHAÎNE (5 caractères)
pr_Nom CHAÎNE (150 caractères)
On commence par construire la table intermédiaire :
POUR dp_Numero = premier à dernier par ordre croissant des numéros
RECHERCHER dans Villes la ville ou vi_Code_insee > dp_Code_insee_prefecture
SI TROUVE ALORS
ECRIRE dans Prefectures vi_Code_Insee, vi_Nom
SINON
AFFICHER 'erreur - code préfecture non trouvé dans Villes'
FIN
dp_Numero suivant
// Variable intermédiaire pour prendre en compte les départements
// d'Outre-mer :
LONGEUR ENTIER
POUR vi_Nom = premier à dernier par ordre alphabétique croissant
SI Gauche(vi_Code_insee,2) < "96" ALORS
LONGUEUR = 2
SINON
LONGUEUR = 3
FIN
RECHERCHER dans Prefectures celle dont Gauche(vi_Code_insee, LONGUEUR)
= Gauche(pr_Code_insee, LONGUEUR)
AFFICHER vi_Nom, pr_Nom
vi_Nom suivant.
C'est une façon de procéder parmi d'autres mais ça doit fonctionner, et
ça a l'avantage de la rapidité, puisque le parcours du fichier des 36000
communes ne se fait qu'une fois.
roseline (Sat, 13 Dec 2014 16:17:05 +0100 - fr.comp.applications.sgbd) :
Le 13/12/2014 14:41, Eric Demeester a écrit :
Dans ce cas, il faut un indicateur supplémentaire permettant de
connaitre à quel département appartient la ville, on admettra qu'il n'y
a qu'une préfecture par département.
non le numero du département d'une ville est les deux premiers chiffres
de son numero INSEE et il y a toujours qu'une préfecture par département
Je disais pile-poil la même chose, hein.
// Variable de stockage du nom de la préfecture
NOM_PREFECTURE est une chaîne de 150 caractères
POUR dp_Numero = premier à dernier par ordre croissant des numéros
RECHERCHER dans Villes la ville ou vi_Code_insee >>> dp_Code_insee_prefecture
SI TROUVE ALORS
NOM_PREFECTURE = vi_Nom
POUR vi_Nom = premier à dernier par ordre alphabétique croissant
SI GAUCHE(vi_Code_insee, 2) = dp_Numero ALORS
AFFICHER dp_Numero, vi_Nom, NOM_PREFECTURE
FIN
vi_Nom SUIVANT
SINON
AFFICHER 'erreur - code préfecture non trouvé dans Villes'
FIN
dp_Numero SUIVANT
mais cela ne permet pas de classer par ordre alphabétique les villes par
exemple a moins de lire 33000fois le fichier des départements
Dans mon exemple, on parcourt le fichier des départements une seule fois
par ordre croissant des départements, puis pour chaque département, on
parcourt le fichier des villes en ordre alphabétique, en filtrant sur le
numéro de département.
On obtient une liste classée par ordre croissant des départements, et
pour chaque département, par ordre alphabétique des villes.
Si vous voulez obtenir une liste triée en ordre alphabétique croissant
des villes, c'est le fichier des villes qui ne sera lu qu'une fois et on
cherchera la préfecture correspondant au code Insee de chaque ville dans
le fichier des départements.
Le problème, c'est qu'on va à la fois parcourir le fichier des villes
par ordre alphabétique croissant, et, pour chaque ville, lire le fichier
des départements selon les 2 caractères de gauche du code Insee pour
récupérer le code Insee de la préfecture, par recherche du nom de la
préfecture correspondante dans le fichier des villes.
Du coup on perd le pointeur de parcours sur le fichier des villes. Euh,
je ne sais pas si c'est très clair :)
Là, on a plusieurs solutions :
- mémoriser le pointeur de parcours du fichier Villes pour reprendre
le parcours au bon endroit (un peu acrobatique) ;
- ajouter le nom de la préfecture dans le fichier des départements
(on n'aime pas stocker d'informations redondantes) ;
- créer une table de liaison Prefectures, éventuellement en mémoire,
qui servira de jointure.
- Prefectures :
pr_Code_insee CHAÎNE (5 caractères)
pr_Nom CHAÎNE (150 caractères)
On commence par construire la table intermédiaire :
POUR dp_Numero = premier à dernier par ordre croissant des numéros
RECHERCHER dans Villes la ville ou vi_Code_insee > dp_Code_insee_prefecture
SI TROUVE ALORS
ECRIRE dans Prefectures vi_Code_Insee, vi_Nom
SINON
AFFICHER 'erreur - code préfecture non trouvé dans Villes'
FIN
dp_Numero suivant
// Variable intermédiaire pour prendre en compte les départements
// d'Outre-mer :
LONGEUR ENTIER
POUR vi_Nom = premier à dernier par ordre alphabétique croissant
SI Gauche(vi_Code_insee,2) < "96" ALORS
LONGUEUR = 2
SINON
LONGUEUR = 3
FIN
RECHERCHER dans Prefectures celle dont Gauche(vi_Code_insee, LONGUEUR)
= Gauche(pr_Code_insee, LONGUEUR)
AFFICHER vi_Nom, pr_Nom
vi_Nom suivant.
C'est une façon de procéder parmi d'autres mais ça doit fonctionner, et
ça a l'avantage de la rapidité, puisque le parcours du fichier des 36000
communes ne se fait qu'une fois.
roseline (Sat, 13 Dec 2014 16:17:05 +0100 - fr.comp.applications.sgbd) :Le 13/12/2014 14:41, Eric Demeester a écrit :Dans ce cas, il faut un indicateur supplémentaire permettant de
connaitre à quel département appartient la ville, on admettra qu'il n'y
a qu'une préfecture par département.
non le numero du département d'une ville est les deux premiers chiffres
de son numero INSEE et il y a toujours qu'une préfecture par département
Je disais pile-poil la même chose, hein.// Variable de stockage du nom de la préfecture
NOM_PREFECTURE est une chaîne de 150 caractères
POUR dp_Numero = premier à dernier par ordre croissant des numéros
RECHERCHER dans Villes la ville ou vi_Code_insee >>> dp_Code_insee_prefecture
SI TROUVE ALORS
NOM_PREFECTURE = vi_Nom
POUR vi_Nom = premier à dernier par ordre alphabétique croissant
SI GAUCHE(vi_Code_insee, 2) = dp_Numero ALORS
AFFICHER dp_Numero, vi_Nom, NOM_PREFECTURE
FIN
vi_Nom SUIVANT
SINON
AFFICHER 'erreur - code préfecture non trouvé dans Villes'
FIN
dp_Numero SUIVANTmais cela ne permet pas de classer par ordre alphabétique les villes par
exemple a moins de lire 33000fois le fichier des départements
Dans mon exemple, on parcourt le fichier des départements une seule fois
par ordre croissant des départements, puis pour chaque département, on
parcourt le fichier des villes en ordre alphabétique, en filtrant sur le
numéro de département.
On obtient une liste classée par ordre croissant des départements, et
pour chaque département, par ordre alphabétique des villes.
Si vous voulez obtenir une liste triée en ordre alphabétique croissant
des villes, c'est le fichier des villes qui ne sera lu qu'une fois et on
cherchera la préfecture correspondant au code Insee de chaque ville dans
le fichier des départements.
Le problème, c'est qu'on va à la fois parcourir le fichier des villes
par ordre alphabétique croissant, et, pour chaque ville, lire le fichier
des départements selon les 2 caractères de gauche du code Insee pour
récupérer le code Insee de la préfecture, par recherche du nom de la
préfecture correspondante dans le fichier des villes.
Du coup on perd le pointeur de parcours sur le fichier des villes. Euh,
je ne sais pas si c'est très clair :)
Là, on a plusieurs solutions :
- mémoriser le pointeur de parcours du fichier Villes pour reprendre
le parcours au bon endroit (un peu acrobatique) ;
- ajouter le nom de la préfecture dans le fichier des départements
(on n'aime pas stocker d'informations redondantes) ;
- créer une table de liaison Prefectures, éventuellement en mémoire,
qui servira de jointure.
- Prefectures :
pr_Code_insee CHAÎNE (5 caractères)
pr_Nom CHAÎNE (150 caractères)
On commence par construire la table intermédiaire :
POUR dp_Numero = premier à dernier par ordre croissant des numéros
RECHERCHER dans Villes la ville ou vi_Code_insee > dp_Code_insee_prefecture
SI TROUVE ALORS
ECRIRE dans Prefectures vi_Code_Insee, vi_Nom
SINON
AFFICHER 'erreur - code préfecture non trouvé dans Villes'
FIN
dp_Numero suivant
// Variable intermédiaire pour prendre en compte les départements
// d'Outre-mer :
LONGEUR ENTIER
POUR vi_Nom = premier à dernier par ordre alphabétique croissant
SI Gauche(vi_Code_insee,2) < "96" ALORS
LONGUEUR = 2
SINON
LONGUEUR = 3
FIN
RECHERCHER dans Prefectures celle dont Gauche(vi_Code_insee, LONGUEUR)
= Gauche(pr_Code_insee, LONGUEUR)
AFFICHER vi_Nom, pr_Nom
vi_Nom suivant.
C'est une façon de procéder parmi d'autres mais ça doit fonctionner, et
ça a l'avantage de la rapidité, puisque le parcours du fichier des 36000
communes ne se fait qu'une fois.
Le 13/12/2014 19:22, Eric Demeester a écrit :roseline (Sat, 13 Dec 2014 16:17:05 +0100 - fr.comp.applications.sgbd) :Le 13/12/2014 14:41, Eric Demeester a écrit :Dans ce cas, il faut un indicateur supplémentaire permettant de
connaitre à quel département appartient la ville, on admettra qu'il n'y
a qu'une préfecture par département.
non le numero du département d'une ville est les deux premiers chiffres
de son numero INSEE et il y a toujours qu'une préfecture par département
Je disais pile-poil la même chose, hein.// Variable de stockage du nom de la préfecture
NOM_PREFECTURE est une chaîne de 150 caractères
POUR dp_Numero = premier à dernier par ordre croissant des numéros
RECHERCHER dans Villes la ville ou vi_Code_insee >>>> dp_Code_insee_prefecture
SI TROUVE ALORS
NOM_PREFECTURE = vi_Nom
POUR vi_Nom = premier à dernier par ordre alphabétique croissant
SI GAUCHE(vi_Code_insee, 2) = dp_Numero ALORS
AFFICHER dp_Numero, vi_Nom, NOM_PREFECTURE
FIN
vi_Nom SUIVANT
SINON
AFFICHER 'erreur - code préfecture non trouvé dans Villes'
FIN
dp_Numero SUIVANTmais cela ne permet pas de classer par ordre alphabétique les villes par
exemple a moins de lire 33000fois le fichier des départements
Dans mon exemple, on parcourt le fichier des départements une seule fois
par ordre croissant des départements, puis pour chaque département, on
parcourt le fichier des villes en ordre alphabétique, en filtrant sur le
numéro de département.
On obtient une liste classée par ordre croissant des départements, et
pour chaque département, par ordre alphabétique des villes.
Si vous voulez obtenir une liste triée en ordre alphabétique croissant
des villes, c'est le fichier des villes qui ne sera lu qu'une fois et on
cherchera la préfecture correspondant au code Insee de chaque ville dans
le fichier des départements.
Le problème, c'est qu'on va à la fois parcourir le fichier des villes
par ordre alphabétique croissant, et, pour chaque ville, lire le fichier
des départements selon les 2 caractères de gauche du code Insee pour
récupérer le code Insee de la préfecture, par recherche du nom de la
préfecture correspondante dans le fichier des villes.
Du coup on perd le pointeur de parcours sur le fichier des villes. Euh,
je ne sais pas si c'est très clair :)
Là, on a plusieurs solutions :
- mémoriser le pointeur de parcours du fichier Villes pour reprendre
le parcours au bon endroit (un peu acrobatique) ;
- ajouter le nom de la préfecture dans le fichier des départements
(on n'aime pas stocker d'informations redondantes) ;
- créer une table de liaison Prefectures, éventuellement en mémoire,
qui servira de jointure.
- Prefectures :
pr_Code_insee CHAÎNE (5 caractères)
pr_Nom CHAÎNE (150 caractères)
On commence par construire la table intermédiaire :
POUR dp_Numero = premier à dernier par ordre croissant des numéros
RECHERCHER dans Villes la ville ou vi_Code_insee >> dp_Code_insee_prefecture
SI TROUVE ALORS
ECRIRE dans Prefectures vi_Code_Insee, vi_Nom
SINON
AFFICHER 'erreur - code préfecture non trouvé dans Villes'
FIN
dp_Numero suivant
// Variable intermédiaire pour prendre en compte les départements
// d'Outre-mer :
LONGEUR ENTIER
POUR vi_Nom = premier à dernier par ordre alphabétique croissant
SI Gauche(vi_Code_insee,2) < "96" ALORS
LONGUEUR = 2
SINON
LONGUEUR = 3
FIN
RECHERCHER dans Prefectures celle dont Gauche(vi_Code_insee, LONGUEUR)
= Gauche(pr_Code_insee, LONGUEUR)
AFFICHER vi_Nom, pr_Nom
vi_Nom suivant.
C'est une façon de procéder parmi d'autres mais ça doit fonctionner, et
ça a l'avantage de la rapidité, puisque le parcours du fichier des 36000
communes ne se fait qu'une fois.
cela donne quoi en SQL ?
---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant
parce que la protection avast! Antivirus est active.
http://www.avast.com
Le 13/12/2014 19:22, Eric Demeester a écrit :
roseline (Sat, 13 Dec 2014 16:17:05 +0100 - fr.comp.applications.sgbd) :
Le 13/12/2014 14:41, Eric Demeester a écrit :
Dans ce cas, il faut un indicateur supplémentaire permettant de
connaitre à quel département appartient la ville, on admettra qu'il n'y
a qu'une préfecture par département.
non le numero du département d'une ville est les deux premiers chiffres
de son numero INSEE et il y a toujours qu'une préfecture par département
Je disais pile-poil la même chose, hein.
// Variable de stockage du nom de la préfecture
NOM_PREFECTURE est une chaîne de 150 caractères
POUR dp_Numero = premier à dernier par ordre croissant des numéros
RECHERCHER dans Villes la ville ou vi_Code_insee >>>> dp_Code_insee_prefecture
SI TROUVE ALORS
NOM_PREFECTURE = vi_Nom
POUR vi_Nom = premier à dernier par ordre alphabétique croissant
SI GAUCHE(vi_Code_insee, 2) = dp_Numero ALORS
AFFICHER dp_Numero, vi_Nom, NOM_PREFECTURE
FIN
vi_Nom SUIVANT
SINON
AFFICHER 'erreur - code préfecture non trouvé dans Villes'
FIN
dp_Numero SUIVANT
mais cela ne permet pas de classer par ordre alphabétique les villes par
exemple a moins de lire 33000fois le fichier des départements
Dans mon exemple, on parcourt le fichier des départements une seule fois
par ordre croissant des départements, puis pour chaque département, on
parcourt le fichier des villes en ordre alphabétique, en filtrant sur le
numéro de département.
On obtient une liste classée par ordre croissant des départements, et
pour chaque département, par ordre alphabétique des villes.
Si vous voulez obtenir une liste triée en ordre alphabétique croissant
des villes, c'est le fichier des villes qui ne sera lu qu'une fois et on
cherchera la préfecture correspondant au code Insee de chaque ville dans
le fichier des départements.
Le problème, c'est qu'on va à la fois parcourir le fichier des villes
par ordre alphabétique croissant, et, pour chaque ville, lire le fichier
des départements selon les 2 caractères de gauche du code Insee pour
récupérer le code Insee de la préfecture, par recherche du nom de la
préfecture correspondante dans le fichier des villes.
Du coup on perd le pointeur de parcours sur le fichier des villes. Euh,
je ne sais pas si c'est très clair :)
Là, on a plusieurs solutions :
- mémoriser le pointeur de parcours du fichier Villes pour reprendre
le parcours au bon endroit (un peu acrobatique) ;
- ajouter le nom de la préfecture dans le fichier des départements
(on n'aime pas stocker d'informations redondantes) ;
- créer une table de liaison Prefectures, éventuellement en mémoire,
qui servira de jointure.
- Prefectures :
pr_Code_insee CHAÎNE (5 caractères)
pr_Nom CHAÎNE (150 caractères)
On commence par construire la table intermédiaire :
POUR dp_Numero = premier à dernier par ordre croissant des numéros
RECHERCHER dans Villes la ville ou vi_Code_insee >> dp_Code_insee_prefecture
SI TROUVE ALORS
ECRIRE dans Prefectures vi_Code_Insee, vi_Nom
SINON
AFFICHER 'erreur - code préfecture non trouvé dans Villes'
FIN
dp_Numero suivant
// Variable intermédiaire pour prendre en compte les départements
// d'Outre-mer :
LONGEUR ENTIER
POUR vi_Nom = premier à dernier par ordre alphabétique croissant
SI Gauche(vi_Code_insee,2) < "96" ALORS
LONGUEUR = 2
SINON
LONGUEUR = 3
FIN
RECHERCHER dans Prefectures celle dont Gauche(vi_Code_insee, LONGUEUR)
= Gauche(pr_Code_insee, LONGUEUR)
AFFICHER vi_Nom, pr_Nom
vi_Nom suivant.
C'est une façon de procéder parmi d'autres mais ça doit fonctionner, et
ça a l'avantage de la rapidité, puisque le parcours du fichier des 36000
communes ne se fait qu'une fois.
cela donne quoi en SQL ?
---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant
parce que la protection avast! Antivirus est active.
http://www.avast.com
Le 13/12/2014 19:22, Eric Demeester a écrit :roseline (Sat, 13 Dec 2014 16:17:05 +0100 - fr.comp.applications.sgbd) :Le 13/12/2014 14:41, Eric Demeester a écrit :Dans ce cas, il faut un indicateur supplémentaire permettant de
connaitre à quel département appartient la ville, on admettra qu'il n'y
a qu'une préfecture par département.
non le numero du département d'une ville est les deux premiers chiffres
de son numero INSEE et il y a toujours qu'une préfecture par département
Je disais pile-poil la même chose, hein.// Variable de stockage du nom de la préfecture
NOM_PREFECTURE est une chaîne de 150 caractères
POUR dp_Numero = premier à dernier par ordre croissant des numéros
RECHERCHER dans Villes la ville ou vi_Code_insee >>>> dp_Code_insee_prefecture
SI TROUVE ALORS
NOM_PREFECTURE = vi_Nom
POUR vi_Nom = premier à dernier par ordre alphabétique croissant
SI GAUCHE(vi_Code_insee, 2) = dp_Numero ALORS
AFFICHER dp_Numero, vi_Nom, NOM_PREFECTURE
FIN
vi_Nom SUIVANT
SINON
AFFICHER 'erreur - code préfecture non trouvé dans Villes'
FIN
dp_Numero SUIVANTmais cela ne permet pas de classer par ordre alphabétique les villes par
exemple a moins de lire 33000fois le fichier des départements
Dans mon exemple, on parcourt le fichier des départements une seule fois
par ordre croissant des départements, puis pour chaque département, on
parcourt le fichier des villes en ordre alphabétique, en filtrant sur le
numéro de département.
On obtient une liste classée par ordre croissant des départements, et
pour chaque département, par ordre alphabétique des villes.
Si vous voulez obtenir une liste triée en ordre alphabétique croissant
des villes, c'est le fichier des villes qui ne sera lu qu'une fois et on
cherchera la préfecture correspondant au code Insee de chaque ville dans
le fichier des départements.
Le problème, c'est qu'on va à la fois parcourir le fichier des villes
par ordre alphabétique croissant, et, pour chaque ville, lire le fichier
des départements selon les 2 caractères de gauche du code Insee pour
récupérer le code Insee de la préfecture, par recherche du nom de la
préfecture correspondante dans le fichier des villes.
Du coup on perd le pointeur de parcours sur le fichier des villes. Euh,
je ne sais pas si c'est très clair :)
Là, on a plusieurs solutions :
- mémoriser le pointeur de parcours du fichier Villes pour reprendre
le parcours au bon endroit (un peu acrobatique) ;
- ajouter le nom de la préfecture dans le fichier des départements
(on n'aime pas stocker d'informations redondantes) ;
- créer une table de liaison Prefectures, éventuellement en mémoire,
qui servira de jointure.
- Prefectures :
pr_Code_insee CHAÎNE (5 caractères)
pr_Nom CHAÎNE (150 caractères)
On commence par construire la table intermédiaire :
POUR dp_Numero = premier à dernier par ordre croissant des numéros
RECHERCHER dans Villes la ville ou vi_Code_insee >> dp_Code_insee_prefecture
SI TROUVE ALORS
ECRIRE dans Prefectures vi_Code_Insee, vi_Nom
SINON
AFFICHER 'erreur - code préfecture non trouvé dans Villes'
FIN
dp_Numero suivant
// Variable intermédiaire pour prendre en compte les départements
// d'Outre-mer :
LONGEUR ENTIER
POUR vi_Nom = premier à dernier par ordre alphabétique croissant
SI Gauche(vi_Code_insee,2) < "96" ALORS
LONGUEUR = 2
SINON
LONGUEUR = 3
FIN
RECHERCHER dans Prefectures celle dont Gauche(vi_Code_insee, LONGUEUR)
= Gauche(pr_Code_insee, LONGUEUR)
AFFICHER vi_Nom, pr_Nom
vi_Nom suivant.
C'est une façon de procéder parmi d'autres mais ça doit fonctionner, et
ça a l'avantage de la rapidité, puisque le parcours du fichier des 36000
communes ne se fait qu'une fois.
cela donne quoi en SQL ?
---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant
parce que la protection avast! Antivirus est active.
http://www.avast.com