SQL Groub by date
Résolu/Fermé
Jonas87
Messages postés
125
Date d'inscription
mercredi 3 septembre 2008
Statut
Membre
Dernière intervention
19 avril 2010
-
4 mars 2009 à 14:28
Jonas87 Messages postés 125 Date d'inscription mercredi 3 septembre 2008 Statut Membre Dernière intervention 19 avril 2010 - 4 mars 2009 à 16:31
Jonas87 Messages postés 125 Date d'inscription mercredi 3 septembre 2008 Statut Membre Dernière intervention 19 avril 2010 - 4 mars 2009 à 16:31
8 réponses
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
514
4 mars 2009 à 14:29
4 mars 2009 à 14:29
utiliser une méthode comme le substring sql?
Jonas87
Messages postés
125
Date d'inscription
mercredi 3 septembre 2008
Statut
Membre
Dernière intervention
19 avril 2010
29
4 mars 2009 à 14:43
4 mars 2009 à 14:43
Merci Nookz, Je ne connaissais pas cette fonction, si je fais cette requette :
SELECT SUBSTR(date,0,2), COUNT(nom) as nombre FROM table GROUP BY SUBSTR(date,0,2)
Il me sort :
date | nombre
(vide) | 12308
12308 doit être le total de toute ma table !
Je cherche a avoir :
date | nombre
200810 | 12
200811 | 2
200812 | 7
Je précise que je fais la requête via ODBC avec du code VBA sous Excel
SELECT SUBSTR(date,0,2), COUNT(nom) as nombre FROM table GROUP BY SUBSTR(date,0,2)
Il me sort :
date | nombre
(vide) | 12308
12308 doit être le total de toute ma table !
Je cherche a avoir :
date | nombre
200810 | 12
200811 | 2
200812 | 7
Je précise que je fais la requête via ODBC avec du code VBA sous Excel
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
514
4 mars 2009 à 14:46
4 mars 2009 à 14:46
déjà pour votre problématique il faudrait mettre SUBSTR(date,0,6)
après je ne sais pas si le SUBSTR est bien pris en compte dans votre cas :s
essayez ceci pour vérifier :
SELECT SUBSTR(date,0,6), COUNT(nom) as nombre FROM table
après je ne sais pas si le SUBSTR est bien pris en compte dans votre cas :s
essayez ceci pour vérifier :
SELECT SUBSTR(date,0,6), COUNT(nom) as nombre FROM table
Jonas87
Messages postés
125
Date d'inscription
mercredi 3 septembre 2008
Statut
Membre
Dernière intervention
19 avril 2010
29
>
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
4 mars 2009 à 15:04
4 mars 2009 à 15:04
Le SUBSTR n'a pas l'air de marcher, si je ne mets pas de group by il me met une 'erreur ODBC 1004'
J'ai essayer un LEFT sans succès :(
J'ai essayer un LEFT sans succès :(
loicDu28
Messages postés
332
Date d'inscription
dimanche 11 janvier 2009
Statut
Membre
Dernière intervention
2 février 2016
53
4 mars 2009 à 14:45
4 mars 2009 à 14:45
Bonjour,
ceci est possible je crois grâce au fonction des SGBD.
Regarde ce site, tu trouvera peut être ton bonheur :
https://sqlpro.developpez.com/cours/sqlaz/fonctions/
Bonne chance
ceci est possible je crois grâce au fonction des SGBD.
Regarde ce site, tu trouvera peut être ton bonheur :
https://sqlpro.developpez.com/cours/sqlaz/fonctions/
Bonne chance
Jonas87
Messages postés
125
Date d'inscription
mercredi 3 septembre 2008
Statut
Membre
Dernière intervention
19 avril 2010
29
4 mars 2009 à 15:23
4 mars 2009 à 15:23
Arf, j'en ai tenté plusieurs sans succès ! Merci quand même !
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
514
>
Jonas87
Messages postés
125
Date d'inscription
mercredi 3 septembre 2008
Statut
Membre
Dernière intervention
19 avril 2010
4 mars 2009 à 15:25
4 mars 2009 à 15:25
Avez-vous fait d'autres requêtes?
si non exécuter ceci :
SELECT (nom) as nombre FROM table
pour être sûr que votre connexion est fonctionnelle
si non exécuter ceci :
SELECT (nom) as nombre FROM table
pour être sûr que votre connexion est fonctionnelle
Jonas87
Messages postés
125
Date d'inscription
mercredi 3 septembre 2008
Statut
Membre
Dernière intervention
19 avril 2010
29
4 mars 2009 à 15:30
4 mars 2009 à 15:30
Oui ma première requête:
SELECT date, COUNT(nom) as nombre FROM table GROUP BY date
Cela fonctionne mais avec une table où la date est sous la forme YYYYMM
Mais dans la table où la date est de la forme YYYYMMDD je n'y arrive pas !
Je précise également que je n'ai pas les droits d'écriture dans la base de donnée...
SELECT date, COUNT(nom) as nombre FROM table GROUP BY date
Cela fonctionne mais avec une table où la date est sous la forme YYYYMM
Mais dans la table où la date est de la forme YYYYMMDD je n'y arrive pas !
Je précise également que je n'ai pas les droits d'écriture dans la base de donnée...
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
514
4 mars 2009 à 15:34
4 mars 2009 à 15:34
avez-vous essayé SUBSTRING au lieu de SUBSTR?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Jonas87
Messages postés
125
Date d'inscription
mercredi 3 septembre 2008
Statut
Membre
Dernière intervention
19 avril 2010
29
4 mars 2009 à 15:53
4 mars 2009 à 15:53
Substring ne fonctionne pas, mais substr doit fonctionner car il ne me mets pas d'erreur odbc mais m'affiche juste le total de l'année (cf post 2)
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
514
4 mars 2009 à 15:58
4 mars 2009 à 15:58
et si vous faites juste : SELECT SUBSTR(date,0,6) FROM table
il vous sort quoi?
il vous sort quoi?
Jonas87
Messages postés
125
Date d'inscription
mercredi 3 septembre 2008
Statut
Membre
Dernière intervention
19 avril 2010
29
4 mars 2009 à 16:02
4 mars 2009 à 16:02
Il ne me sort rien dans ce cas (même pas une erreur !)
Je n'avais pas précisé mais date est un champ de ma table.
Je n'avais pas précisé mais date est un champ de ma table.
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
514
4 mars 2009 à 16:04
4 mars 2009 à 16:04
Vous avez essayé LEFT en faisant LEFT(date;6), c'est bien ça?
Sur un autre topic ils sdisent d'utiliser :
mid(chaine, depart, longueur)
Sur un autre topic ils sdisent d'utiliser :
mid(chaine, depart, longueur)
Jonas87
Messages postés
125
Date d'inscription
mercredi 3 septembre 2008
Statut
Membre
Dernière intervention
19 avril 2010
29
4 mars 2009 à 16:09
4 mars 2009 à 16:09
J'ai bien testé LEFT et MID, ils ne semblent pas fonctionner, j'ai a chaque fois une erreur ODBC
Jonas87
Messages postés
125
Date d'inscription
mercredi 3 septembre 2008
Statut
Membre
Dernière intervention
19 avril 2010
29
4 mars 2009 à 16:31
4 mars 2009 à 16:31
C'est bon j'ai trouvé ! Je suis un gros nul ! :)
SELECT SUBSTR(date,1,6), COUNT(nom) as nombre FROM table GROUP BY SUBSTR(date,1,6)
Il ne fallait pas mettre SUBSTR(date,0,6) mais SUBSTR(date,1,6) !!
Le 1 c'est l'index (donc la première lettre de l'année : le début de la chaîne à extraire !)
Merci beaucoup pour ton aide
SELECT SUBSTR(date,1,6), COUNT(nom) as nombre FROM table GROUP BY SUBSTR(date,1,6)
Il ne fallait pas mettre SUBSTR(date,0,6) mais SUBSTR(date,1,6) !!
Le 1 c'est l'index (donc la première lettre de l'année : le début de la chaîne à extraire !)
Merci beaucoup pour ton aide