Bonsoir,
Me revoilà avec une nouvelle question :
Cette requête fonctionne parfaitement, je peux ainsi imprimer les billets achetés par personne, avec le prix par billet et un total par prix de billet, en sélectionnant la personne dans la page précédente
Voici le résultat, par exemple une personne a acheté 3 billets à 10 euro et 2 billets à 5 euro, j'aurai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 SELECT IDNPlace, NumPlace, Reférence, Personnes.IDPersonne, Personnes.Nom_Personne, Personnes.Prenom_Personne, Personnes.Paiement, Personnes.Motet, Instruments.Instrument, Concert.IDconcert, Concert.titreconcert, Concert.lieu, DATE_FORMAT ( Concert.dateconcert, '%d/%m/%Y' ) AS datecon, Zones.IDZone, Zones.Zone, Prix.IDPrix, Prix.Prix, SUM(Prix.Prix) AS prixbillets, COUNT(Prix.Prix) AS nbillets FROM Tab_NumPlace INNER JOIN Personnes ON Tab_NumPlace.IDPersonne = Personnes.IDPersonne INNER JOIN Instruments ON Personnes.IDInstruments = Instruments.IDInstruments INNER JOIN Concert ON Tab_NumPlace.IDconcert = Concert.IDconcert INNER JOIN Zones ON Tab_NumPlace.IDZone = Zones.IDZone INNER JOIN Prix ON Zones.IDPrix = Prix.IDPrix WHERE Personnes.IDPersonne = '".$_REQUEST['idmus']."' AND Concert.IDconcert = '".$_REQUEST['idpm']."' GROUP BY IDPrix ORDER BY IDPrix
Fred Machin :
3 billets à 10 euro = 30 euro
2 billets à 5 euro = 10 euro
prix total = 40 euro
J'ai voulu faire la même chose sans être obligée de sélectionner la personne avant de lancer la requête, c'est-à-dire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 SELECT IDNPlace, NumPlace, Reférence, Personnes.IDPersonne, Personnes.Nom_Personne, Personnes.Prenom_Personne, Personnes.Paiement, Personnes.Motet, Instruments.Instrument, Concert.IDconcert, Concert.titreconcert, Concert.lieu, DATE_FORMAT ( Concert.dateconcert, '%d/%m/%Y' ) AS datecon, Zones.IDZone, Zones.Zone, Prix.IDPrix, Prix.Prix, SUM(Prix.Prix) AS prixbillets, COUNT(Prix.Prix) AS nbillets FROM Tab_NumPlace INNER JOIN Personnes ON Tab_NumPlace.IDPersonne = Personnes.IDPersonne INNER JOIN Instruments ON Personnes.IDInstruments = Instruments.IDInstruments INNER JOIN Concert ON Tab_NumPlace.IDconcert = Concert.IDconcert INNER JOIN Zones ON Tab_NumPlace.IDZone = Zones.IDZone INNER JOIN Prix ON Zones.IDPrix = Prix.IDPrix WHERE Concert.IDconcert = '".$_REQUEST['id']."' GROUP BY IDPrix ORDER BY IDPrix
et là j'obtiens :
Fred Machin :
5 billets à : 10 euro = 50 euro
2 billets à : 5 euro = 10 euro
Jo Dupont
5 Billets à : 40 euro = 200 euro
Jules Durand :
3 Billets à : 35 euro = 105 euro
et
Amélie Truc qui avait deux billets à 10 euro n'apparait pas, ses deux billets ont passé chez Fred Machin qui lui n'en avait acheté que trois et se retrouve avec 5.
Je soupconne que le problème vient du GROUP BY, mais après avoir testé d'autres possibilités, celle-ci fonctionnait si bien que j'ai voulu l'appliquer sans être obligée de sélectionner les personnes une à une pour imprimer, mais les imprimer toutes d'un seul coup (surtout qu'il peut y en avoir une centaire)
Comme d'habitude la solution est certainement toute simple pour les experts et très compliquée pour moi
Merci d'avance pour votre aide précieuse et bonne semaine à tous
Partager