cs_sirine_28_06_85
Messages postés40Date d'inscriptionjeudi 22 mars 2007StatutMembreDernière intervention 6 avril 2008
-
18 mai 2007 à 09:33
cs_sirine_28_06_85
Messages postés40Date d'inscriptionjeudi 22 mars 2007StatutMembreDernière intervention 6 avril 2008
-
18 mai 2007 à 19:31
voila mon tableau
joueur, codeaction, Reussite ou non, ----
ali, 1, oui, ----
slim, 2, non, ----
slim, 3, oui, ----
ahmed, 4, non, ----
ali, 5, oui, ----
ahmed, 6, non, ----
amin, 7, oui
Je voudrais une requete sql qui affiche ce résultat:
joueur, Nombre d’actions réussites, Nombre d’actions non réussites, ----
ali, 2, 0, ----
slim, 1, 1, ----
ahmed, 0, 2, ----
amin, 1, 0
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 18 mai 2007 à 14:42
Bonjour,
Moi je dirais:
"SELECT Table1.joueur, " & _
"Count(Table1.action) AS CompteDeaction, " & _
"Sum(IIf([Table1]![reussiteounon]="oui",1,0)) AS Reussite, " & _
"Sum(IIf([Table1]![reussiteounon]="oui",0,1)) AS NonReussiten " & _
"FROM Table1 GROUP BY Table1.joueur;"
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200824 18 mai 2007 à 10:35
Salut,
J'ai de gros doutes sur la possibilité de faire çà directement en SQL puisque les champs de sortie n'ont rien à voir avec les champs en entrée de ta table. C'est plutôt une routine de calcul (en VB, C, Ada, Java, C#, ... ) qui pourrait, à partir d'un certain nombre de SELECT bien choisis, de construire un tableau avec les résultats que tu attends.
SELECT DISTINCTROW joueur from NomDeTaTable; => Te liste tous les joueurs, sans doublons.
A partir de cette liste, pour chaque élément :
SELECT COUNT(*) FROM NomDeTaTable Where (joueur='LeNomDuJoueur' AND Reussite='oui'); => donne le nombre d'actions réussies pour UN joueur donné.
Et il faut rassembler tous les éléments pour construire un tableau.
Manu
--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 18 mai 2007 à 10:56
Salut,
Je veux...je veux...Mais je rêve là....Econs te répond et toi tu exiges....Réfléchis un peu avant de répondre et essaye de comprendre ce que l'on te propose...
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 18 mai 2007 à 11:22
Salut,
Ben voui, les projets de fin d'études, ya pas finit d'avoir des messages sur le forum....
Je comprend que tu sois stréssé, mais je pense que la réponse que tu as eu de Econs, doit te permettre d'arriver à ton but...Maitenant si ton prof n'a pas mit de restriction au niveau du code, tu peux faire plusieurs requêtes de séléction...Comme expliquer par Econs(que je salue d'ailleurs)..
cs_moustachu
Messages postés1079Date d'inscriptionjeudi 14 novembre 2002StatutMembreDernière intervention 1 janvier 2012 18 mai 2007 à 13:11
Tiens, voilà, c'est beau et digeste :
select * from
(SELECT joueur, count(*) as nbr
FROM testf where reussite = 'non'
GROUP BY joueur ) as t1 full outer join
(SELECT joueur, count(*) as nbr
FROM testf where reussite = 'oui'
GROUP BY joueur ) as t2
on t1.joueur = t2.joueur
Si le full outer join n'existe pas dans ton SGBD tu peux aussi :
select t1.joueur, t1.nbr as KO, t2.nbr as OK from
(SELECT joueur, count(*) as nbr
FROM testf where reussite = 'non'
GROUP BY joueur ) as t1 left exception join
(SELECT joueur, count(*) as nbr
FROM testf where reussite = 'oui'
GROUP BY joueur ) as t2
on t1.joueur = t2.joueur
union all
select t2.joueur, t1.nbr as KO, t2.nbr as OK from
(SELECT joueur, count(*) as nbr
FROM testf where reussite = 'non'
GROUP BY joueur ) as t1 right outer join
(SELECT joueur, count(*) as nbr
FROM testf where reussite = 'oui'
GROUP BY joueur ) as t2
on t1.joueur = t2.joueur
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200824 18 mai 2007 à 14:07
moustachu > Joli ... pas testé, mais à vue de nez, y'a un peu de çà. "Exception" n'est pas connu chez moi, pas plus que "full outer join", donc pas pu essayer.
Exploreur > Mes salutations également
Manu --------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
cs_moustachu
Messages postés1079Date d'inscriptionjeudi 14 novembre 2002StatutMembreDernière intervention 1 janvier 2012 18 mai 2007 à 15:59
C'est vrai qu'il faudrait connaître le SGBD...parce que le SUM IIF c'est pas pour tout le monde non plus...Mais c'est vrai que c'est plus court du coup :o)
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 18 mai 2007 à 17:32
tu gardes donc tout sauf pour les non réusites tu modifies
<strike>"Sum(IIf([Table1]![reussiteounon]="oui",0,1)) AS NonReussiten</strike> par
"Sum(IIf([Table1]![reussiteounon]='non',1,0)) AS NonReussiten
cs_sirine_28_06_85
Messages postés40Date d'inscriptionjeudi 22 mars 2007StatutMembreDernière intervention 6 avril 2008 18 mai 2007 à 17:46
salut chaibat05
voila mon code aprés l'exécution de la requete je veux afficher les données dans un mschart(histogramme) les actions réussites sont corrctes mais les non réussites sont fausses...voila mon code si tu peut m'aider svp c'est mon projet fin d'étude.
Set rst = dbs.OpenRecordset("SELECT individuelleoff.joueur, " & _
"Count(individuelleoff.codeio), " & _
"Sum(IIf([individuelleoff]![resI]=true,1,0)), " & _
"Sum(IIf([individuelleoff]![resI]=false,1,0)) " & _
"FROM individuelleoff GROUP BY individuelleoff.joueur;")
MSChart1.AllowSelections = False
With MSChart1
.chartType = VtChChartType2dBar
.ColumnCount = 2
.RowCount = rst.RecordCount
For i = 1 To rst.RecordCount
.Row = i
.Column = 1
.RowLabel = rst.Fields(0)
.Data = rst.Fields(2).Value
.Column = 2
.Data = rst.Fields(3).Value
rst.MoveNext
Next i
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 18 mai 2007 à 18:01
With MSChart1
.chartType = VtChChartType2dBar
.ColumnCount = 2
.RowCount = rst.RecordCount
For i = 1 To rst.RecordCount
.Row = i
.Column = 1
.RowLabel = rst.Fields(0) 'c' est le joueur
.Column = 2
.RowLabel = rst.Fields(1) 'c' est le total
.Column = 3
.Data = rst.Fields(2).Value 'les réussis
.Column = 4
.Data = rst.Fields(3).Value 'les non réussis
rst.MoveNext
Next i
Ens With
non ?
Si c' est pas ça ,je ne comprend pas pourquoi ça "déconne" à non_reussi !
En attendant d' en savoir plus , fais ceci :
Set rst = dbs.OpenRecordset("SELECT individuelleoff.joueur, " & _
"Count(individuelleoff.codeio), " & _
"Sum(IIf([individuelleoff]![resI]=true,1,0)), " & _
"FROM individuelleoff GROUP BY individuelleoff.joueur;")
For i = 1 To rst.RecordCount
.Row = i
.Column = 1
.RowLabel = rst.Fields(0) 'c' est le joueur
.Column = 2
.RowLabel = rst.Fields(1) 'c' est le total
.Column = 3
.Data = rst.Fields(2).Value 'les réussis
.Column = 4
.Data = st.Fields(1).Value- rst.Fields(2).Value 'les non réussis
rst.MoveNext
Next i