Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

GEODATA DAYS 2024

#1 Wed 02 June 2010 14:18

mlking31
Participant occasionnel
Date d'inscription: 17 Dec 2008
Messages: 36

requete SQL et regroupement

bonjour je souhaiterais faire une requête SQL qui comprends 2 critères.

je m'explique j'ai des parcelles avec chacune des dates de construction (autant de ligne qu'il y a de bâti dessus), je souhaite regrouper les objets avec l'identifiant parcelle et prendre le minimum mais celui ci doit être différent de zéro est ce que c'est possible ?

Hors ligne

 

#2 Wed 02 June 2010 14:53

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: requete SQL et regroupement

Salut,

Qu'entends tu par "prendre le minimum"
A+
Joël

Hors ligne

 

#3 Wed 02 June 2010 14:59

mlking31
Participant occasionnel
Date d'inscription: 17 Dec 2008
Messages: 36

Re: requete SQL et regroupement

pardon, prendre le la date minimum sans qu'elle soit égale à zéro

Hors ligne

 

#4 Wed 02 June 2010 15:01

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: requete SQL et regroupement

Tu veux sélectionner le batiment le plus vieux par parcelle?

Hors ligne

 

#5 Wed 02 June 2010 15:07

mlking31
Participant occasionnel
Date d'inscription: 17 Dec 2008
Messages: 36

Re: requete SQL et regroupement

c'est ca,
en fait il peut très bien avoir 10 bâtis dessus et je veux bien le plus vieux sans qu'il soit égal à zéro

Hors ligne

 

#6 Wed 02 June 2010 15:10

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: requete SQL et regroupement

Essaye voir ceci:

Code:

Select * from Ta_Table where Date <> 0 group by IDParcelle order by Date asc into Resultat

Dernière modification par Spacejo (Wed 02 June 2010 15:43)

Hors ligne

 

#7 Wed 02 June 2010 15:25

mlking31
Participant occasionnel
Date d'inscription: 17 Dec 2008
Messages: 36

Re: requete SQL et regroupement

en fait la ça les trient just et, moi ce que je souhaite c'est que vu que j'ai plusieurs lignes avec le meme identifiant de parcelle cela ca signifie que j'ai plusieurs bâtis dessus, je souhaite avoir pour chaque parcelle, l'id et la date de construction.

dans certains cas j'ai plusieurs 4 lignes avec par exemple l'année 1997, l'année 1980, l'année 1979 et une ligne avec l'année 0 je souhaiterais garder que l'année 1979.

Hors ligne

 

#8 Wed 02 June 2010 15:37

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: requete SQL et regroupement

C'est bizarre car le group by devrait te prendre un batiment par parcelle

Hors ligne

 

#9 Wed 02 June 2010 15:47

mlking31
Participant occasionnel
Date d'inscription: 17 Dec 2008
Messages: 36

Re: requete SQL et regroupement

oui il me prends une seule ligne je n'ai pas de probleme de ce coté ci mais seulement je pense faire une requete SQL du genre :

Code:

Select idpar,Min(date) from commune group by idpar into Selection

mais il me prends des fois une année 0 alors que certains batis de cette parcelle ne sont eux pas à 0.

Hors ligne

 

#10 Wed 02 June 2010 15:48

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: requete SQL et regroupement

Eh bien tu peux faire ceci:

Code:

Select idpar,Min(date) from commune where Date <> 0 group by idpar into Selection

Hors ligne

 

#11 Wed 02 June 2010 15:53

mlking31
Participant occasionnel
Date d'inscription: 17 Dec 2008
Messages: 36

Re: requete SQL et regroupement

alors le résultat a l'air pas mal mais le problème c'est que je pense que lorsqu'on fait date <>0 est ce qu'il le fait avant de choisir le minimum, parce que si il le fait après ça n'a que peu d'intérêt.
que penses tu que MapInfo fasse clairement ? il enlève d'abord les 0 et après choisi le minimum ou est ce qu'il calcule le minimum et ensuite il m'enlève les 0 ??

Hors ligne

 

#12 Wed 02 June 2010 15:59

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: requete SQL et regroupement

Normalement en language SQL le critère Where passe en premier, c'est à dire que la requète va te faire une sélection de toutes tes lignes qui ont une "Date" différente de zéro puis il va te grouper cette sélection suivant ton critère group by.

Hors ligne

 

#13 Wed 02 June 2010 16:06

mlking31
Participant occasionnel
Date d'inscription: 17 Dec 2008
Messages: 36

Re: requete SQL et regroupement

ah bon si c'est bien ca je te remercie bien !!

Hors ligne

 

#14 Wed 02 June 2010 16:14

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: requete SQL et regroupement

Rien ne t'empêche de faire une sélection avec ton critère <> 0 puis de faire ton group by dessus (en 2 requètes comme ça tu pourras vérifier)
Au besoin aprés la requète <> 0 --> tu inverses la sélection pour voir que tu as bien toutes tes dates = 0

Hors ligne

 

Pied de page des forums

Powered by FluxBB