banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

#1 Thu 16 March 2006 14:10

jmbuton
Participant assidu
Date d'inscription: 28 Sep 2005
Messages: 235

Requete SQL et cardinalité

J'ai une tabe graphique A de contour de communes avec chacune un numero INSEE.
J'ai une autre table B, non graphique, associant à certain numero INSEE, des dates (ex : date de maj de POS)

Info :
certaines communes n'ont pas de date associée, et n'apparaissent donc pas dans ma table B.
certaines communes apparaissent deux fois dans ma table B (deux dates associées)

Lorsque je fais une requete SQL avec une jointure sur le numero INSEE, ma table graphique resultat ne contient que les communes ayant une date. Or je veux que ma table resultat reprennent bien sur toute les communes et affichent les dates de celles qui en contiennent une.

Je pencherait pour un probleme de cardinalité dans la relation entre les deux tables...
ex : 1-->n , 1-->1, n-->1, etc.

Mais comment le resoudre. Quelqu'une aurait il une idée ?

Hors ligne

 

#2 Thu 16 March 2006 15:42

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: Requete SQL et cardinalité

Bonjour,
La première partie est 'facile': commencer par une sélection de A,B où INSEE.A=INSEE.B into toto...
puis mettre à jour cette sélection toto: toutes les communes sont conservées, même les sans date.
Plus dur pour la seconde partie, heureusement il n'y a que 2 dates (!):
- soit préparer sous Excel un tableau avec un INSEE par ligne et pour les répétitions un contenu date1 / date2 (les tableaux croisés dynamiques d'Excel sont puissants)
- soit faire sous MI une manip en 2 fois: premier passage de mise à jour, puis destruction des ligne de B où INSEE.B=INSEE.A et date.B=date.A, enfin deuxième passage de mise à jour (avec concaténation de date1+" / "+date2)
Bon courage

Hors ligne

 

Pied de page des forums

Powered by FluxBB