Précédent   Forum des professionnels en informatique > Bases de données > Autres SGBD > InterBase
InterBase Forum d'entraide sur le SGBD InterBase de Codegear. Avant de poster -> F.A.Q Interbase, Tutoriels
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 02/01/2005, 10h45   #1
Membre régulier
 
Inscription : février 2003
Messages : 165
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 165
Points : 94
Points : 94
Par défaut [Interbase] Compter le nombre d'année

Salut,

La table Planning a pour champ DatePlan dont voici les valeurs :
  • 01/01/2004
    02/01/2004
    01/01/2005
    02/01/2005

Je souhaite avoir comme résultat le nombre d'année, soit : 2.

J'ai commencé la requête suivante mais ça compte le nombre de jour par année :
Code :
1
2
3
4
SELECT COUNT(EXTRACT(YEAR FROM DatePlan)) AS Annee
FROM Planning
WHERE Matricule='AB001'
GROUP BY EXTRACT(YEAR FROM DatePlan)
SebCBien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2005, 19h59   #2
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Je comprend pas précisément quel est le besoin.

Code :
1
2
3
SELECT max(EXTRACT(YEAR FROM DatePlan))  - min(EXTRACT(YEAR FROM DatePlan))
FROM Planning 
WHERE Matricule='AB001'
Pour un résultat plus précis il faudra je pense utiliser des fonctions UDF.
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2005, 11h03   #3
Membre régulier
 
Inscription : février 2003
Messages : 165
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 165
Points : 94
Points : 94
Je précise :

Dans l'exemple donnée, j'ai 4 lignes avec 2 dates pour l'année 2004 et 2 dates pour l'année 2005.
Donc le résultat est 2 parce que j'ai 2 années (2004 et 2005).
SebCBien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2005, 12h23   #4
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Ma requete retourne bien 2 avec votre jeu de test.

Votre exemple est un cas particulier et votre question manquait de précision.

D'un autre coté si vous aviez posé plus précisément votre question vous auriez probablement trouvé seul la solution.

Si j'ai bien compris vous cherchez le nombre d'année distinte qu'il y a dans votre planning.

Donc vous y etiez presque

Code :
1
2
3
SELECT COUNT(DISTINCT EXTRACT(YEAR FROM DatePlan)) AS Annee 
FROM Planning 
WHERE Matricule='AB001'
Avec :
Code :
1
2
3
4
01/01/2004 
02/01/2004 
01/01/2006 
02/01/2006
retournera 2.
Barbibulle 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 14h35.


 
 
 
 
Partenaires

Hébergement Web