#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