SQL > select count distinct group by ACCESS
Fermé
gerarcyr
-
22 févr. 2008 à 16:24
Hydatid Messages postés 4 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 25 avril 2010 - 27 mars 2010 à 18:42
Hydatid Messages postés 4 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 25 avril 2010 - 27 mars 2010 à 18:42
A voir également:
- Select count distinct access
- Access runtime ✓ - Forum Access
- Acer quick access - Forum Logiciels
- Please select boot device - Forum Windows
- Access appdata - Guide
- Please select boot device - Forum Matériel & Système
7 réponses
Neverend
Messages postés
21
Date d'inscription
vendredi 14 décembre 2007
Statut
Membre
Dernière intervention
29 octobre 2008
81
22 févr. 2008 à 17:01
22 févr. 2008 à 17:01
oups erreur
SELECT count(*) as nb
FROM stats2008
WHERE (SELECT distinct ip, date1 as d1 FROM stats2008 WHERE url='http://...')
GROUP BY date1
SELECT count(*) as nb
FROM stats2008
WHERE (SELECT distinct ip, date1 as d1 FROM stats2008 WHERE url='http://...')
GROUP BY date1
Bonjour,
Voila pas mal de temps que je me suis frotté à SQL, mais à votre place je décomposerais cette requete pour vérifier que le select intégré fonctionne seul.
Ensuite si ça fonctionne, je relancerai la requete complete sans le group by.
Voilà ce n'est qu'une méthode...
Bon courage
Tenez moi au courant si ça a marché..ça fait toujours plaisir.
Voila pas mal de temps que je me suis frotté à SQL, mais à votre place je décomposerais cette requete pour vérifier que le select intégré fonctionne seul.
Ensuite si ça fonctionne, je relancerai la requete complete sans le group by.
Voilà ce n'est qu'une méthode...
Bon courage
Tenez moi au courant si ça a marché..ça fait toujours plaisir.
Velvel-Miho
Messages postés
32
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
20 mars 2008
21
22 févr. 2008 à 16:44
22 févr. 2008 à 16:44
Le problème viens du FROM, ça saute au nez.
Il faut mettre un table et pas autre chose.
La manipulation est simple :
SELECT ip, date
FROM stats2008
WHERE url='http'
GROUP BY ip, date
Déjà cette requete te donne la liste de ceux qui ce sont connecter pour tel ou tel jour.
Maintenant, il faut que tu compte combien y en a .
Il faut mettre un table et pas autre chose.
La manipulation est simple :
SELECT ip, date
FROM stats2008
WHERE url='http'
GROUP BY ip, date
Déjà cette requete te donne la liste de ceux qui ce sont connecter pour tel ou tel jour.
Maintenant, il faut que tu compte combien y en a .
Velvel-Miho
Messages postés
32
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
20 mars 2008
21
22 févr. 2008 à 16:55
22 févr. 2008 à 16:55
Et bien, voyons voir ...
Si c'est bien sur access, tu peux faire donc :
Enregistre une 1ière requete :
SELECT ip, date
FROM stats2008
WHERE url='http'
GROUP BY ip, date
Tu l'a nomme "requete1"
Puis tu fais une seconde requete :
SELECT count(ip)
FROM requete1
GROUP BY date
Et le tour est joué.
Si c'est bien sur access, tu peux faire donc :
Enregistre une 1ière requete :
SELECT ip, date
FROM stats2008
WHERE url='http'
GROUP BY ip, date
Tu l'a nomme "requete1"
Puis tu fais une seconde requete :
SELECT count(ip)
FROM requete1
GROUP BY date
Et le tour est joué.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
22 févr. 2008 à 16:53
22 févr. 2008 à 16:53
Bonjour,
Qu'est ce qui ne va pas exactement dans ta requête ?
Sinon, lorsque tu fais un GROUP BY, tu ne peux le faire que sur des champs que tu sélectionne via ta requête. Dans ton cas tu essai de faire un GROUP BY date1 alors que tu ne la sélectionne pas (SELECT count(*) as nb).
Je rajouterai donc ceci dans ta requête :
Par contre je ne sais plus comment se gère le disctinct donc je ne peux pas plus t'aider.
Qu'est ce qui ne va pas exactement dans ta requête ?
Sinon, lorsque tu fais un GROUP BY, tu ne peux le faire que sur des champs que tu sélectionne via ta requête. Dans ton cas tu essai de faire un GROUP BY date1 alors que tu ne la sélectionne pas (SELECT count(*) as nb).
Je rajouterai donc ceci dans ta requête :
SELECT DISTINCT date1, count(*) as total FROM (SELECT distinct ip, date1 FROM stats2008) WHERE url='http://...' GROUP BY date1
Par contre je ne sais plus comment se gère le disctinct donc je ne peux pas plus t'aider.
Neverend
Messages postés
21
Date d'inscription
vendredi 14 décembre 2007
Statut
Membre
Dernière intervention
29 octobre 2008
81
22 févr. 2008 à 16:59
22 févr. 2008 à 16:59
salut
SELECT count(*) as nb
FROM stats2008
WHERE (SELECT distinct ip, date1 as d1 FROM stats2008) and url='http://...'
GROUP BY date1
test ça
SELECT count(*) as nb
FROM stats2008
WHERE (SELECT distinct ip, date1 as d1 FROM stats2008) and url='http://...'
GROUP BY date1
test ça
Hydatid
Messages postés
4
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
25 avril 2010
1
27 mars 2010 à 18:42
27 mars 2010 à 18:42
Bonjour,
Dans l'exemple résolu vous traiter d'une requête avec une seule table et un seul groupe ! J'ai un problème plus complexe :
Dans une requête constituée de 3 tables ([xTP-Patient] ; [xTP-Facture] ; [xTP-DetailActes]) liée entre elles et groupée selon la "Date_facture", je voudrais pour chaque journée afficher (calculer) le nombre de personnes de sexe masculin (Titre = Mr) et celle de sexe féminin (Titre = Mme) et le nombre de Consultations (Acte=Consultation) et Controle (Acte=Controle)!
Je ne voudrais pas créer une requête analyse croisée car j'ai deux en-têtes de colonnes (Titre et Acte) à créer ce qui est impossible !
Le code suivant :
M'affiche pour chaque journée le nombre total des consultants (pour les colonnes 2, 3 et 4) et le nombre total des femmes de toutes la base de données, j'ai pas encore introduits les autres expressions (Mr, Consultation, Contrôle).
Comment dois-je faire merci
Dans l'exemple résolu vous traiter d'une requête avec une seule table et un seul groupe ! J'ai un problème plus complexe :
Dans une requête constituée de 3 tables ([xTP-Patient] ; [xTP-Facture] ; [xTP-DetailActes]) liée entre elles et groupée selon la "Date_facture", je voudrais pour chaque journée afficher (calculer) le nombre de personnes de sexe masculin (Titre = Mr) et celle de sexe féminin (Titre = Mme) et le nombre de Consultations (Acte=Consultation) et Controle (Acte=Controle)!
Je ne voudrais pas créer une requête analyse croisée car j'ai deux en-têtes de colonnes (Titre et Acte) à créer ce qui est impossible !
Le code suivant :
SELECT [xTP-Facture].date_facture, Count([xTP-Patient].Id) AS CompteDeId, Count([xTP-Patient].Titre) AS CompteDeTitre, Count([xTP-DetailActes].Acte3) AS CompteDeActe3, DCount("[id]","xtp-Patient","[titre] = 'Mme' ") AS Mme FROM [xTP-Patient] INNER JOIN ([xTP-Facture] INNER JOIN [xTP-DetailActes] ON [xTP-Facture].n_facture = [xTP-DetailActes].N_fact) ON [xTP-Patient].Id = [xTP-Facture].Id GROUP BY [xTP-Facture].date_facture;
M'affiche pour chaque journée le nombre total des consultants (pour les colonnes 2, 3 et 4) et le nombre total des femmes de toutes la base de données, j'ai pas encore introduits les autres expressions (Mr, Consultation, Contrôle).
Comment dois-je faire merci
22 févr. 2008 à 17:05
Mais le pb est resolu.
Merci a tous pour vos reponse
22 févr. 2008 à 17:07
Merci.