un petit casse tête : regroupement avec paramètres
9 réponses
Touti
Bonsoir,
J'ai beau retourner le problème dans tous les sens : Je me heurte à un
soucis de regroupement
Voilà : J'ai deux tables Utilisateurs et Démarches (liées), et je recherche
à dénombrer le nombre de démarches pour une période donnée (exemple du
01/01/2009 au 31/12/2009)
Utilisateurs
* Num
* Nom
* Prénom
10,dupont,pierre
20,durant,monique
Démarches
* Num
* date
10,01/03/2008
10,01/02/2009
10,01/04/2009
10,01/05/2009
10,01/01/2010
Ici avec l'exemple, j'ai 2 utilisateurs : 1 a réalisé plusieurs démarches,
l'autre pas.
Grâce à deux requêtes de regroupement différentes, j'arrive à obtenir le
résultat :
1er cas
dupont,5
durant,0
2ème cas
dupont,3
Comment pourrais-je réaliser une requête pour obtenir la compilation des
deux ???
dupont,3
durant,0
J'ai essayé d'intégrer la fonction Count, Dcount,... sans succés.
Merci pour votre aide (même en Sql pas de VBA)
GuY
__________ Information provenant d'ESET NOD32 Antivirus, version de la base des signatures de virus 5113 (20100513) __________
Le message a été vérifié par ESET NOD32 Antivirus.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
db
Le 13/05/2010 19:30, Touti a écrit :
Bonsoir,
J'ai beau retourner le problème dans tous les sens : Je me heurte à un soucis de regroupement
Voilà : J'ai deux tables Utilisateurs et Démarches (liées), et je recherche à dénombrer le nombre de démarches pour une période donnée (exemple du 01/01/2009 au 31/12/2009)
Utilisateurs * Num * Nom * Prénom 10,dupont,pierre 20,durant,monique
Démarches * Num * date 10,01/03/2008 10,01/02/2009 10,01/04/2009 10,01/05/2009 10,01/01/2010
Ici avec l'exemple, j'ai 2 utilisateurs : 1 a réalisé plusieurs démarches, l'autre pas.
Grâce à deux requêtes de regroupement différentes, j'arrive à obtenir le résultat : 1er cas dupont,5 durant,0
2ème cas dupont,3
Comment pourrais-je réaliser une requête pour obtenir la compilation des deux ??? dupont,3 durant,0
Essayez cette requête (non testée) :
SELECT nom, count(num) from utilisateurs left join Démarches on Démarches.num=Utilisateurs.num where [date] between #1/1/2009# and #12/31/2009# group by nom
db
Le 13/05/2010 19:30, Touti a écrit :
Bonsoir,
J'ai beau retourner le problème dans tous les sens : Je me heurte à un
soucis de regroupement
Voilà : J'ai deux tables Utilisateurs et Démarches (liées), et je recherche
à dénombrer le nombre de démarches pour une période donnée (exemple du
01/01/2009 au 31/12/2009)
Utilisateurs
* Num
* Nom
* Prénom
10,dupont,pierre
20,durant,monique
Démarches
* Num
* date
10,01/03/2008
10,01/02/2009
10,01/04/2009
10,01/05/2009
10,01/01/2010
Ici avec l'exemple, j'ai 2 utilisateurs : 1 a réalisé plusieurs démarches,
l'autre pas.
Grâce à deux requêtes de regroupement différentes, j'arrive à obtenir le
résultat :
1er cas
dupont,5
durant,0
2ème cas
dupont,3
Comment pourrais-je réaliser une requête pour obtenir la compilation des
deux ???
dupont,3
durant,0
Essayez cette requête (non testée) :
SELECT nom, count(num)
from utilisateurs left join Démarches on Démarches.num=Utilisateurs.num
where [date] between #1/1/2009# and #12/31/2009#
group by nom
J'ai beau retourner le problème dans tous les sens : Je me heurte à un soucis de regroupement
Voilà : J'ai deux tables Utilisateurs et Démarches (liées), et je recherche à dénombrer le nombre de démarches pour une période donnée (exemple du 01/01/2009 au 31/12/2009)
Utilisateurs * Num * Nom * Prénom 10,dupont,pierre 20,durant,monique
Démarches * Num * date 10,01/03/2008 10,01/02/2009 10,01/04/2009 10,01/05/2009 10,01/01/2010
Ici avec l'exemple, j'ai 2 utilisateurs : 1 a réalisé plusieurs démarches, l'autre pas.
Grâce à deux requêtes de regroupement différentes, j'arrive à obtenir le résultat : 1er cas dupont,5 durant,0
2ème cas dupont,3
Comment pourrais-je réaliser une requête pour obtenir la compilation des deux ??? dupont,3 durant,0
Essayez cette requête (non testée) :
SELECT nom, count(num) from utilisateurs left join Démarches on Démarches.num=Utilisateurs.num where [date] between #1/1/2009# and #12/31/2009# group by nom
db
Touti
Essayez cette requête (non testée) :
SELECT nom, count(num) from utilisateurs left join Démarches on Démarches.num=Utilisateurs.num where [date] between #1/1/2009# and #12/31/2009# group by nom
On avance : Le comptage se réalise bien mais le nom de la personne qui n'a pas eu de démarche n'apparait pas avec le comptage
Merci
GuY
__________ Information provenant d'ESET NOD32 Antivirus, version de la base des signatures de virus 5113 (20100513) __________
Le message a été vérifié par ESET NOD32 Antivirus.
http://www.eset.com
Essayez cette requête (non testée) :
SELECT nom, count(num)
from utilisateurs left join Démarches on Démarches.num=Utilisateurs.num
where [date] between #1/1/2009# and #12/31/2009#
group by nom
On avance : Le comptage se réalise bien mais le nom de la personne qui n'a
pas eu de démarche n'apparait pas avec le comptage
Merci
GuY
__________ Information provenant d'ESET NOD32 Antivirus, version de la base des signatures de virus 5113 (20100513) __________
Le message a été vérifié par ESET NOD32 Antivirus.
SELECT nom, count(num) from utilisateurs left join Démarches on Démarches.num=Utilisateurs.num where [date] between #1/1/2009# and #12/31/2009# group by nom
On avance : Le comptage se réalise bien mais le nom de la personne qui n'a pas eu de démarche n'apparait pas avec le comptage
Merci
GuY
__________ Information provenant d'ESET NOD32 Antivirus, version de la base des signatures de virus 5113 (20100513) __________
Le message a été vérifié par ESET NOD32 Antivirus.
http://www.eset.com
db
Le 13/05/2010 21:47, Touti a écrit :
Essayez cette requête (non testée) :
SELECT nom, count(num) from utilisateurs left join Démarches on Démarches.num=Utilisateurs.num where [date] between #1/1/2009# and #12/31/2009# group by nom
On avance : Le comptage se réalise bien mais le nom de la personne qui n'a pas eu de démarche n'apparait pas avec le comptage
Effectivement, le fait de mettre le critère sur la table en jointure externe annule l'effet voulu. Je ne vois que cette solution :
Créer une première requête avec le critère de date (Démarches2009):
Select * from Démarches where [date] between #1/1/2009# and #12/31/2009#
puis la requête finale :
SELECT nom, count(Démarches2009.num) from utilisateurs left join Démarches2009 on Démarches2009.num=Utilisateurs.num group by nom
db
Le 13/05/2010 21:47, Touti a écrit :
Essayez cette requête (non testée) :
SELECT nom, count(num)
from utilisateurs left join Démarches on Démarches.num=Utilisateurs.num
where [date] between #1/1/2009# and #12/31/2009#
group by nom
On avance : Le comptage se réalise bien mais le nom de la personne qui n'a
pas eu de démarche n'apparait pas avec le comptage
Effectivement, le fait de mettre le critère sur la table en jointure
externe annule l'effet voulu. Je ne vois que cette solution :
Créer une première requête avec le critère de date (Démarches2009):
Select * from Démarches
where [date] between #1/1/2009# and #12/31/2009#
puis la requête finale :
SELECT nom, count(Démarches2009.num)
from utilisateurs left join Démarches2009 on
Démarches2009.num=Utilisateurs.num
group by nom
SELECT nom, count(num) from utilisateurs left join Démarches on Démarches.num=Utilisateurs.num where [date] between #1/1/2009# and #12/31/2009# group by nom
On avance : Le comptage se réalise bien mais le nom de la personne qui n'a pas eu de démarche n'apparait pas avec le comptage
Effectivement, le fait de mettre le critère sur la table en jointure externe annule l'effet voulu. Je ne vois que cette solution :
Créer une première requête avec le critère de date (Démarches2009):
Select * from Démarches where [date] between #1/1/2009# and #12/31/2009#
puis la requête finale :
SELECT nom, count(Démarches2009.num) from utilisateurs left join Démarches2009 on Démarches2009.num=Utilisateurs.num group by nom
db
Touti
Effectivement, le fait de mettre le critère sur la table en jointure externe annule l'effet voulu. Je ne vois que cette solution :
Créer une première requête avec le critère de date (Démarches2009):
Select * from Démarches where [date] between #1/1/2009# and #12/31/2009#
puis la requête finale :
SELECT nom, count(Démarches2009.num) from utilisateurs left join Démarches2009 on Démarches2009.num=Utilisateurs.num group by nom
Merci de ta réponse
Oui je suis bien coincé, déjà que la table utilisateur (j'avais simplifié l'exemple) vient déjà d'une autre requête paramétrée, ca commence à compliquer les choses(augmentation des objets,...)
Par contre en VBA, puis-je cumuler les requêtes ??
GuY
__________ Information provenant d'ESET NOD32 Antivirus, version de la base des signatures de virus 5113 (20100513) __________
Le message a été vérifié par ESET NOD32 Antivirus.
http://www.eset.com
Effectivement, le fait de mettre le critère sur la table en jointure
externe annule l'effet voulu. Je ne vois que cette solution :
Créer une première requête avec le critère de date (Démarches2009):
Select * from Démarches
where [date] between #1/1/2009# and #12/31/2009#
puis la requête finale :
SELECT nom, count(Démarches2009.num)
from utilisateurs left join Démarches2009 on
Démarches2009.num=Utilisateurs.num
group by nom
Merci de ta réponse
Oui je suis bien coincé, déjà que la table utilisateur (j'avais simplifié
l'exemple) vient déjà d'une autre requête paramétrée, ca commence à
compliquer les choses(augmentation des objets,...)
Par contre en VBA, puis-je cumuler les requêtes ??
GuY
__________ Information provenant d'ESET NOD32 Antivirus, version de la base des signatures de virus 5113 (20100513) __________
Le message a été vérifié par ESET NOD32 Antivirus.
Effectivement, le fait de mettre le critère sur la table en jointure externe annule l'effet voulu. Je ne vois que cette solution :
Créer une première requête avec le critère de date (Démarches2009):
Select * from Démarches where [date] between #1/1/2009# and #12/31/2009#
puis la requête finale :
SELECT nom, count(Démarches2009.num) from utilisateurs left join Démarches2009 on Démarches2009.num=Utilisateurs.num group by nom
Merci de ta réponse
Oui je suis bien coincé, déjà que la table utilisateur (j'avais simplifié l'exemple) vient déjà d'une autre requête paramétrée, ca commence à compliquer les choses(augmentation des objets,...)
Par contre en VBA, puis-je cumuler les requêtes ??
GuY
__________ Information provenant d'ESET NOD32 Antivirus, version de la base des signatures de virus 5113 (20100513) __________
Le message a été vérifié par ESET NOD32 Antivirus.
http://www.eset.com
db
Le 13/05/2010 23:22, Touti a écrit :
Oui je suis bien coincé, déjà que la table utilisateur (j'avais simplifié l'exemple) vient déjà d'une autre requête paramétrée, ca commence à compliquer les choses(augmentation des objets,...)
Par contre en VBA, puis-je cumuler les requêtes ??
Cumuler les requêtes, oui, ou utiliser d'autres techniques, comme les recordsets : tout dépend des traitements que vous avez à faire.
db
Le 13/05/2010 23:22, Touti a écrit :
Oui je suis bien coincé, déjà que la table utilisateur (j'avais simplifié
l'exemple) vient déjà d'une autre requête paramétrée, ca commence à
compliquer les choses(augmentation des objets,...)
Par contre en VBA, puis-je cumuler les requêtes ??
Cumuler les requêtes, oui, ou utiliser d'autres techniques, comme les
recordsets : tout dépend des traitements que vous avez à faire.
Oui je suis bien coincé, déjà que la table utilisateur (j'avais simplifié l'exemple) vient déjà d'une autre requête paramétrée, ca commence à compliquer les choses(augmentation des objets,...)
Par contre en VBA, puis-je cumuler les requêtes ??
Cumuler les requêtes, oui, ou utiliser d'autres techniques, comme les recordsets : tout dépend des traitements que vous avez à faire.
db
Michel__D
Bonjour,
Touti a écrit :
Effectivement, le fait de mettre le critère sur la table en jointure externe annule l'effet voulu. Je ne vois que cette solution :
Créer une première requête avec le critère de date (Démarches2009):
Select * from Démarches where [date] between #1/1/2009# and #12/31/2009#
puis la requête finale :
SELECT nom, count(Démarches2009.num) from utilisateurs left join Démarches2009 on Démarches2009.num=Utilisateurs.num group by nom
Merci de ta réponse
Oui je suis bien coincé, déjà que la table utilisateur (j'avais simplifié l'exemple) vient déjà d'une autre requête paramétrée, ca commence à compliquer les choses(augmentation des objets,...)
Par contre en VBA, puis-je cumuler les requêtes ??
GuY
Essaye avec ce SQL
SELECT T.nom, Sum(Nz(R.compte,0)) AS Valeur FROM utilisateurs LEFT JOIN ( select S.num, Count(S.date) as compte from Démarches as S where Year(S.date) 09 group by S.num) AS R GROUP BY T.nom;
Bonjour,
Touti a écrit :
Effectivement, le fait de mettre le critère sur la table en jointure
externe annule l'effet voulu. Je ne vois que cette solution :
Créer une première requête avec le critère de date (Démarches2009):
Select * from Démarches
where [date] between #1/1/2009# and #12/31/2009#
puis la requête finale :
SELECT nom, count(Démarches2009.num)
from utilisateurs left join Démarches2009 on
Démarches2009.num=Utilisateurs.num
group by nom
Merci de ta réponse
Oui je suis bien coincé, déjà que la table utilisateur (j'avais simplifié
l'exemple) vient déjà d'une autre requête paramétrée, ca commence à
compliquer les choses(augmentation des objets,...)
Par contre en VBA, puis-je cumuler les requêtes ??
GuY
Essaye avec ce SQL
SELECT T.nom, Sum(Nz(R.compte,0)) AS Valeur
FROM utilisateurs LEFT JOIN (
select S.num, Count(S.date) as compte from Démarches as S where
Year(S.date) 09 group by S.num) AS R
GROUP BY T.nom;
Effectivement, le fait de mettre le critère sur la table en jointure externe annule l'effet voulu. Je ne vois que cette solution :
Créer une première requête avec le critère de date (Démarches2009):
Select * from Démarches where [date] between #1/1/2009# and #12/31/2009#
puis la requête finale :
SELECT nom, count(Démarches2009.num) from utilisateurs left join Démarches2009 on Démarches2009.num=Utilisateurs.num group by nom
Merci de ta réponse
Oui je suis bien coincé, déjà que la table utilisateur (j'avais simplifié l'exemple) vient déjà d'une autre requête paramétrée, ca commence à compliquer les choses(augmentation des objets,...)
Par contre en VBA, puis-je cumuler les requêtes ??
GuY
Essaye avec ce SQL
SELECT T.nom, Sum(Nz(R.compte,0)) AS Valeur FROM utilisateurs LEFT JOIN ( select S.num, Count(S.date) as compte from Démarches as S where Year(S.date) 09 group by S.num) AS R GROUP BY T.nom;
Touti
Bonjour Db et tous les autres,
Cumuler les requêtes, oui, ou utiliser d'autres techniques, comme les recordsets : tout dépend des traitements que vous avez à faire.
Vu la structure de la base de données (je peux pas la modifier) je suis obligé, comme tu l'avais signalé, de décomposer les actions et je suis donc passé au VBA pour atteindre mon objectif.
Pour le cas présent, je parcours différentes étapes pour arriver à la synthèse des informations (par exemple dénombrer les démarches d'utilisateurs).
1) Dans un formulaire, 2 zones de texte et un bouton me permet de filtrer les utilisateurs sur une période d'analyse qui s'affiche dans une grille. Je rajoute un champ Select (case à cocher pour affiner la sélection des utilisateurs) //code // * création d'une table Tab_base avec paramètres : CurrentDb.Execute sql (elle me permet de mémoriser tous les utilisateurs pour toutes les autres actions de synthèse) * Ajout du champ Select dans la table : CreateField("select", dbBoolean) * Affichage de la table dans la grille : gril.SourceObject = "Table.Tab_base"
2) Phase de synthèse : Un bouton "démarche" du même formulaire lance la synthèse. La table Base est liée à la table des démarches. //code// * Création d'une requête intermédiaire qui permet de filtrer les démarches sur la même période selon aussi les personnes sélectionnées * Création d'une requête de regroupement (req_final) qui permet de créer la synthèse à partir des infos de la requête intermédiaire et la table de Base * Création d'une table Final qui contiendra toutes les synthèses * Ajout d'un champ dans la Table Final
* Mise a jour de ce champ à partir des infos de la requête de regroupement ==>>> Et c'est là que ca pause problème, j'utilise une technique trouvée sur le net mais le temps de traitement est très long et plante si je sélectionne trop de personnes (la base est sur un réseau). //Code// sql = "UPDATE Tab_final SET Tab_final.[nbr dém_emp] = DSum(""[nbr dem_emp]"",""req_final"",""[req_final.numero] = "" & [tab_final].[numero]);" CurrentDb.Execute sql
Surtout lorsque dans certaines synthèses, j'ai un nombre important de champ à mettre à jour Set db = CurrentDb Set td = db.TableDefs("Tab_final") Screen.MousePointer = 11 Dim nomfield As String For i = 4 To qd.Fields.Count nomfield = qd.Fields(i).Name Set f = td.CreateField(nomfield, dbLong) With td.Fields .Append f .Refresh End With CreateField = True DoEvents sql = "UPDATE Tab_final SET Tab_final.[" & nomfield & "] = DSum(""[" & nomfield & "]"",""req_final"",""[req_final.numero] = "" & [tab_final].[numero]);" CurrentDb.Execute sql DoEvents Next i Screen.MousePointer = 0
Ma question est : Y a t-il une autre possibilité de placer les données d'une requête dans une table ????
Merci et bon Week-end
GuY
__________ Information provenant d'ESET NOD32 Antivirus, version de la base des signatures de virus 5115 (20100514) __________
Le message a été vérifié par ESET NOD32 Antivirus.
http://www.eset.com
Bonjour Db et tous les autres,
Cumuler les requêtes, oui, ou utiliser d'autres techniques, comme les
recordsets : tout dépend des traitements que vous avez à faire.
Vu la structure de la base de données (je peux pas la modifier) je suis
obligé, comme tu l'avais signalé, de décomposer les actions et je suis donc
passé au VBA pour atteindre mon objectif.
Pour le cas présent, je parcours différentes étapes pour arriver à la
synthèse des informations (par exemple dénombrer les démarches
d'utilisateurs).
1) Dans un formulaire, 2 zones de texte et un bouton me permet de filtrer
les utilisateurs sur une période d'analyse qui s'affiche dans une grille. Je
rajoute un champ Select (case à cocher pour affiner la sélection des
utilisateurs)
//code //
* création d'une table Tab_base avec paramètres : CurrentDb.Execute sql
(elle me permet de mémoriser tous les utilisateurs pour toutes les autres
actions de synthèse)
* Ajout du champ Select dans la table : CreateField("select", dbBoolean)
* Affichage de la table dans la grille : gril.SourceObject =
"Table.Tab_base"
2) Phase de synthèse : Un bouton "démarche" du même formulaire lance la
synthèse. La table Base est liée à la table des démarches.
//code//
* Création d'une requête intermédiaire qui permet de filtrer les démarches
sur la même période selon aussi les personnes sélectionnées
* Création d'une requête de regroupement (req_final) qui permet de créer la
synthèse à partir des infos de la requête intermédiaire et la table de Base
* Création d'une table Final qui contiendra toutes les synthèses
* Ajout d'un champ dans la Table Final
* Mise a jour de ce champ à partir des infos de la requête de regroupement
==>>> Et c'est là que ca pause problème, j'utilise une technique trouvée
sur le net mais le temps de traitement est très long et plante si je
sélectionne trop de personnes (la base est sur un réseau).
//Code//
sql = "UPDATE Tab_final SET Tab_final.[nbr dém_emp] = DSum(""[nbr
dem_emp]"",""req_final"",""[req_final.numero] = "" & [tab_final].[numero]);"
CurrentDb.Execute sql
Surtout lorsque dans certaines synthèses, j'ai un nombre important de champ
à mettre à jour
Set db = CurrentDb
Set td = db.TableDefs("Tab_final")
Screen.MousePointer = 11
Dim nomfield As String
For i = 4 To qd.Fields.Count
nomfield = qd.Fields(i).Name
Set f = td.CreateField(nomfield, dbLong)
With td.Fields
.Append f
.Refresh
End With
CreateField = True
DoEvents
sql = "UPDATE Tab_final SET Tab_final.[" & nomfield & "] = DSum(""["
& nomfield & "]"",""req_final"",""[req_final.numero] = "" &
[tab_final].[numero]);"
CurrentDb.Execute sql
DoEvents
Next i
Screen.MousePointer = 0
Ma question est : Y a t-il une autre possibilité de placer les données d'une
requête dans une table ????
Merci et bon Week-end
GuY
__________ Information provenant d'ESET NOD32 Antivirus, version de la base des signatures de virus 5115 (20100514) __________
Le message a été vérifié par ESET NOD32 Antivirus.
Cumuler les requêtes, oui, ou utiliser d'autres techniques, comme les recordsets : tout dépend des traitements que vous avez à faire.
Vu la structure de la base de données (je peux pas la modifier) je suis obligé, comme tu l'avais signalé, de décomposer les actions et je suis donc passé au VBA pour atteindre mon objectif.
Pour le cas présent, je parcours différentes étapes pour arriver à la synthèse des informations (par exemple dénombrer les démarches d'utilisateurs).
1) Dans un formulaire, 2 zones de texte et un bouton me permet de filtrer les utilisateurs sur une période d'analyse qui s'affiche dans une grille. Je rajoute un champ Select (case à cocher pour affiner la sélection des utilisateurs) //code // * création d'une table Tab_base avec paramètres : CurrentDb.Execute sql (elle me permet de mémoriser tous les utilisateurs pour toutes les autres actions de synthèse) * Ajout du champ Select dans la table : CreateField("select", dbBoolean) * Affichage de la table dans la grille : gril.SourceObject = "Table.Tab_base"
2) Phase de synthèse : Un bouton "démarche" du même formulaire lance la synthèse. La table Base est liée à la table des démarches. //code// * Création d'une requête intermédiaire qui permet de filtrer les démarches sur la même période selon aussi les personnes sélectionnées * Création d'une requête de regroupement (req_final) qui permet de créer la synthèse à partir des infos de la requête intermédiaire et la table de Base * Création d'une table Final qui contiendra toutes les synthèses * Ajout d'un champ dans la Table Final
* Mise a jour de ce champ à partir des infos de la requête de regroupement ==>>> Et c'est là que ca pause problème, j'utilise une technique trouvée sur le net mais le temps de traitement est très long et plante si je sélectionne trop de personnes (la base est sur un réseau). //Code// sql = "UPDATE Tab_final SET Tab_final.[nbr dém_emp] = DSum(""[nbr dem_emp]"",""req_final"",""[req_final.numero] = "" & [tab_final].[numero]);" CurrentDb.Execute sql
Surtout lorsque dans certaines synthèses, j'ai un nombre important de champ à mettre à jour Set db = CurrentDb Set td = db.TableDefs("Tab_final") Screen.MousePointer = 11 Dim nomfield As String For i = 4 To qd.Fields.Count nomfield = qd.Fields(i).Name Set f = td.CreateField(nomfield, dbLong) With td.Fields .Append f .Refresh End With CreateField = True DoEvents sql = "UPDATE Tab_final SET Tab_final.[" & nomfield & "] = DSum(""[" & nomfield & "]"",""req_final"",""[req_final.numero] = "" & [tab_final].[numero]);" CurrentDb.Execute sql DoEvents Next i Screen.MousePointer = 0
Ma question est : Y a t-il une autre possibilité de placer les données d'une requête dans une table ????
Merci et bon Week-end
GuY
__________ Information provenant d'ESET NOD32 Antivirus, version de la base des signatures de virus 5115 (20100514) __________
Le message a été vérifié par ESET NOD32 Antivirus.
http://www.eset.com
Touti
Bonjour,
Essaye avec ce SQL
SELECT T.nom, Sum(Nz(R.compte,0)) AS Valeur FROM utilisateurs LEFT JOIN ( select S.num, Count(S.date) as compte from Démarches as S where Year(S.date) 09 group by S.num) AS R GROUP BY T.nom;
j'ai beau manipuler ton contenu, j'ai toujours une erreur de syntaxe..
Merci
GuY
__________ Information provenant d'ESET NOD32 Antivirus, version de la base des signatures de virus 5116 (20100515) __________
Le message a été vérifié par ESET NOD32 Antivirus.
http://www.eset.com
Bonjour,
Essaye avec ce SQL
SELECT T.nom, Sum(Nz(R.compte,0)) AS Valeur
FROM utilisateurs LEFT JOIN (
select S.num, Count(S.date) as compte from Démarches as S where
Year(S.date) 09 group by S.num) AS R
GROUP BY T.nom;
j'ai beau manipuler ton contenu, j'ai toujours une erreur de syntaxe..
Merci
GuY
__________ Information provenant d'ESET NOD32 Antivirus, version de la base des signatures de virus 5116 (20100515) __________
Le message a été vérifié par ESET NOD32 Antivirus.
SELECT T.nom, Sum(Nz(R.compte,0)) AS Valeur FROM utilisateurs LEFT JOIN ( select S.num, Count(S.date) as compte from Démarches as S where Year(S.date) 09 group by S.num) AS R GROUP BY T.nom;
j'ai beau manipuler ton contenu, j'ai toujours une erreur de syntaxe..
Merci
GuY
__________ Information provenant d'ESET NOD32 Antivirus, version de la base des signatures de virus 5116 (20100515) __________
Le message a été vérifié par ESET NOD32 Antivirus.
http://www.eset.com
Michel__D
Re,
Touti a écrit :
Bonjour,
Essaye avec ce SQL
SELECT T.nom, Sum(Nz(R.compte,0)) AS Valeur FROM utilisateurs LEFT JOIN ( select S.num, Count(S.date) as compte from Démarches as S where Year(S.date) 09 group by S.num) AS R GROUP BY T.nom;
j'ai beau manipuler ton contenu, j'ai toujours une erreur de syntaxe..
Merci
GuY
Et oui ce SQL comportait plusieurs erreurs, cela devrait aller mieux avec ceci :
SELECT T.Nom, Sum(Nz(R.Compte,0)) AS Valeur FROM utilisateurs AS T LEFT JOIN (SELECT S.Num, Count(S.DateEnr) AS Compte FROM Démarches AS S WHERE Year(S.DateEnr) 09 GROUP BY S.Num) AS R ON T.Num=R.Num GROUP BY T.nom;
Re,
Touti a écrit :
Bonjour,
Essaye avec ce SQL
SELECT T.nom, Sum(Nz(R.compte,0)) AS Valeur
FROM utilisateurs LEFT JOIN (
select S.num, Count(S.date) as compte from Démarches as S where
Year(S.date) 09 group by S.num) AS R
GROUP BY T.nom;
j'ai beau manipuler ton contenu, j'ai toujours une erreur de syntaxe..
Merci
GuY
Et oui ce SQL comportait plusieurs erreurs, cela devrait aller mieux
avec ceci :
SELECT T.Nom, Sum(Nz(R.Compte,0)) AS Valeur
FROM utilisateurs AS T LEFT JOIN
(SELECT S.Num, Count(S.DateEnr) AS Compte FROM Démarches AS S WHERE
Year(S.DateEnr) 09 GROUP BY S.Num) AS R
ON T.Num=R.Num
GROUP BY T.nom;
SELECT T.nom, Sum(Nz(R.compte,0)) AS Valeur FROM utilisateurs LEFT JOIN ( select S.num, Count(S.date) as compte from Démarches as S where Year(S.date) 09 group by S.num) AS R GROUP BY T.nom;
j'ai beau manipuler ton contenu, j'ai toujours une erreur de syntaxe..
Merci
GuY
Et oui ce SQL comportait plusieurs erreurs, cela devrait aller mieux avec ceci :
SELECT T.Nom, Sum(Nz(R.Compte,0)) AS Valeur FROM utilisateurs AS T LEFT JOIN (SELECT S.Num, Count(S.DateEnr) AS Compte FROM Démarches AS S WHERE Year(S.DateEnr) 09 GROUP BY S.Num) AS R ON T.Num=R.Num GROUP BY T.nom;