Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
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 28/09/2004, 16h31   #1
Membre émérite
 
Avatar de Andry
 
Inscription : juillet 2002
Messages : 1 109
Détails du profil
Informations personnelles :
Localisation : Madagascar

Informations forums :
Inscription : juillet 2002
Messages : 1 109
Points : 949
Points : 949
Envoyer un message via MSN à Andry
Par défaut Requete regroupement par date suivant une condition

Salut à tous.

Je cherche à réaliser une statistique sur une table par mois et année
  • TABLE TMACHIN
    NUM : INTEGER
    DATE_IN : DATE
    MACHINE : VARCHAR
J'ai déjà essayé celui ci
Code :
1
2
3
4
 
SELECT COUNT(*),DATE_IN FROM TMACHIN
WHERE (MACHINE = 'C4256A/ABF')
GROUP BY DATE_IN
Mon problème c'est que DATE_IN est de type date alors que moi je le veux par mois par an.

Merci
__________________
On progresse .....
Andry est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2004, 16h38   #2
Membre émérite
 
Avatar de Andry
 
Inscription : juillet 2002
Messages : 1 109
Détails du profil
Informations personnelles :
Localisation : Madagascar

Informations forums :
Inscription : juillet 2002
Messages : 1 109
Points : 949
Points : 949
Envoyer un message via MSN à Andry
Je crois que j'ai trouvé.
voila le code que j'ai utilisé
Code :
1
2
3
4
5
6
 
SELECT COUNT(*),DATE_IN FROM TMACHIN 
WHERE (MACHINE = 'C4256A/ABF') AND
      EXTRACT( MONTH FROM JOUR ) =10 AND
      EXTRACT(YEAR FROM JOUR) = 2000
GROUP BY DATE_IN
Je teste en profondeur
Reste a le transformer en Procedure STocké si possible et donc a boucler pour avoir le nombre par mois.

Avez vous une idée sur comment faire.

Merci
__________________
On progresse .....
Andry est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2004, 19h08   #3
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
Tu peux créer une vue ou une PS qui fait un
Code :
SELECT TesColonnesDeLaTable, DATE_IN, EXTRACT( MONTH FROM DATE_IN )  AS MONTH_DATE_IN, EXTRACT(YEAR FROM DATE_IN) AS YEAR_DATE_IN FROM TMACHIN
Ensuite tu n'as plus qu'a faire un
Code :
1
2
3
SELECT MONTH_DATE_IN, YEAR_DATE_IN, count(*) FROM MaVueOuMaPS 
WHERE....
GROUP BY YEAR_DATE_IN, MONTH_DATE_IN
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2004, 08h53   #4
Membre émérite
 
Avatar de Andry
 
Inscription : juillet 2002
Messages : 1 109
Détails du profil
Informations personnelles :
Localisation : Madagascar

Informations forums :
Inscription : juillet 2002
Messages : 1 109
Points : 949
Points : 949
Envoyer un message via MSN à Andry
Merci Barbibulle

C'est exactement ce que j'ai fais. Fallait passer par une vue pour que ça marche.
Il y a encore une question, cette procedure servira a afficher une Chart sous Delphi, il a t'il pas un moyen de changer l'entier 1 .. 12 en JAN .. DEC
dans la procedure stocké même

Encore merci
__________________
On progresse .....
Andry est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2004, 10h12   #5
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
Oui c'est possible, il faut chercher dans les UDF. Par contre je n'ai pas vérifié si ces dernières prenaient en compte la langue du systeme d'exploitation ou si les mois sont toujours en anglais (j'ai bien peur que la pluparts on pris l'option de facilité car récupérer les noms de mois en francais c'est possible sous windows mais comme les UDF sont développées pour fonctionner sur plusieurs OS...)

Bref la solution est d'essayer les fonctions proposées dans les UDF et si les mois sont en anglais, soit vous développez votre UDF, soit vous ecrivez une PS qui le fait soit vous le faite faire par votre programme Delphi (par exemple en définissant un field calculé, celui ci regardera la valeur retourné par le select et en fonction affichera le bon libellé).
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2004, 11h05   #6
Membre émérite
 
Avatar de Andry
 
Inscription : juillet 2002
Messages : 1 109
Détails du profil
Informations personnelles :
Localisation : Madagascar

Informations forums :
Inscription : juillet 2002
Messages : 1 109
Points : 949
Points : 949
Envoyer un message via MSN à Andry
Finalement, comme je n'ai pas trouvé dans rfunc alors je vais le faire sous delphi avec un champs calculé

Merci Barbibulle
__________________
On progresse .....
Andry est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h08.


 
 
 
 
Partenaires

Hébergement Web