Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/01/2011, 15h20   #1
Membre à l'essai
 
Inscription : février 2008
Messages : 54
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 54
Points : 20
Points : 20
Par défaut Probleme requete complexe

Bonjour,

J'ai un problème avec un requete un peu trop complexe pour moi

J'ai une table comme suit :

1 champ etablissement (int)
1 champ annee
1 champ mois
1 champ validation (1 ou null)
+ des champs de données

Et je voudrais (si c'est possible en sql) une requete qui me sorte la liste des établissements pour lesquels des données sont présentes et validées par année complète.

Exemple :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
etab  annee  mois  valid
  1    2009     1    1
  1    2009     2    1
  1    2009     3    1
  1    2009     4    1
  1    2009     5    1
  etc...
  1    2009    12    1
  2    2009     2    1
  2    2009     3    
  2    2009     4    
  2    2009     5    1
Dans cet exemple la requete ne sortirais que l'établissement n°1 car le 2 n'a pas tout validé.

Est-ce possible en une seule requete ?
Ludix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 16h05   #2
Membre régulier
 
Avatar de kimausoleil
 
Homme Christophe
Développeur informatique
Inscription : février 2004
Messages : 120
Détails du profil
Informations personnelles :
Nom : Homme Christophe
Localisation : France, Saône et Loire (Bourgogne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Arts - Culture

Informations forums :
Inscription : février 2004
Messages : 120
Points : 88
Points : 88
Salut !

Si ta clé primaire est définie par [etab/annee/mois], et sachant qu'il y a 12 mois... pour une année complète tu peux faire comme ça :

Code :
1
2
3
4
 
SELECT etab, annee FROM (
SELECT etab, annee, SUM(valid) AS somme FROM matable GROUP BY etab, annee) AS tmp
WHERE tmp.somme=12;


ou avec COUNT au lieu de SUM !
kimausoleil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 16h30   #3
Membre à l'essai
 
Inscription : février 2008
Messages : 54
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 54
Points : 20
Points : 20
C'est bien ça (je savais bien qu'il fallait un group by quelque part), ça a l'air de marcher...

Merci !
Ludix est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h49.


 
 
 
 
Partenaires

Hébergement Web