SQL Groub by date
Résolu
Bonjour,
Je veux faire cette requête SQL :
SELECT date, COUNT(nom) as nombre FROM table GROUP BY date
Avoir le nombre de noms par mois.
Seulement la date est au format YYYYMMDD, il faudrait par exemple qu'il me regroupe : 20081025 et 20081030 en 200810
Merci de votre aide !
Je veux faire cette requête SQL :
SELECT date, COUNT(nom) as nombre FROM table GROUP BY date
Avoir le nombre de noms par mois.
Seulement la date est au format YYYYMMDD, il faudrait par exemple qu'il me regroupe : 20081025 et 20081030 en 200810
Merci de votre aide !
Configuration: Windows XP Safari 525.19
8 réponses
-
utiliser une méthode comme le substring sql?
-
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-
-
@NookZLe 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 :(
-
-
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-
-
@Jonas87Avez-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
-
-
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... -
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)
-
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. -
J'ai bien testé LEFT et MID, ils ne semblent pas fonctionner, j'ai a chaque fois une erreur ODBC
-
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