Précédent   Forum des professionnels en informatique > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/10/2011, 12h02   #1
Invité de passage
 
Femme Marina
Étudiant
Inscription : octobre 2011
Messages : 5
Détails du profil
Informations personnelles :
Nom : Femme Marina
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2011
Messages : 5
Points : 2
Points : 2
Par défaut Création d'une requête SQL imbriquée

Bonjour à tous,

Voilà j'ai créé une requête qui fonctionne plutôt bien.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT glpi_cartridgeitems.name, glpi_cartridgeitems.ref, glpi_cartridgeitems.comment, glpi_cartridges.date_use, glpi_infocoms.value
FROM glpi_locations LEFT OUTER JOIN glpi_printers
ON glpi_locations.id = glpi_printers.locations_id
LEFT OUTER JOIN glpi_cartridges
ON glpi_printers.id=glpi_cartridges.printers_id
LEFT OUTER JOIN glpi_cartridgeitems
ON glpi_cartridges.cartridgeitems_id = glpi_cartridgeitems.id
LEFT OUTER JOIN glpi_infocoms
ON glpi_cartridgeitems.id=glpi_infocoms.items_id
WHERE glpi_locations.id=17
AND glpi_infocoms.itemtype LIKE 'CartridgeItem'
AND DATE_FORMAT(glpi_cartridges.date_use, '%Y') = 2010
ORDER BY glpi_cartridges.date_use ASC
Elle m'affiche cette table:

Nom du Produit Référence Commentaires Date d'utilisation Prix
Cartouche HP 363 - Cyan C8771EE Cartouche HP C8771E Cyan- n° 363 - PhotoSmart C5180 - 350 pages 2010-10-18 6.7300
Cartouche HP 363 - Cyan Clair C8774EE Cartouche HP C8774E Cyan Clair- n° 363 - PhotoSmart C5180 - 350 pages 2010-10-18 6.5500

Bon alors je sais que comme ça, ça n'a pas l'air très clair, mais en gros la dernière colonne affiche des prix, et je voudrais rajouter une dernière ligne, et dans la dernière case, je voudrais afficher la somme des prix.

J'ai pensé à la fonction SUM(), mais alors je ne sais pas du tout comment mettre ça en place en requête imbriquée!

Merci à vous.

Bonne journée
Mariniinha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2011, 13h15   #2
Membre émérite
 
Homme Tony
Développeur .NET
Inscription : novembre 2010
Messages : 570
Détails du profil
Informations personnelles :
Nom : Homme Tony
Localisation : France

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : novembre 2010
Messages : 570
Points : 821
Points : 821
Bonjour,

Tu peux essayer de faire une seconde requête avec le même nombre de champs dans laquelle tu selectionnes du vide pour toutes les colonnes, et le total pour la dernière colonne.
Ensuite tu fais un "UNION".
asmduty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2011, 14h07   #3
Invité de passage
 
Femme Marina
Étudiant
Inscription : octobre 2011
Messages : 5
Détails du profil
Informations personnelles :
Nom : Femme Marina
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2011
Messages : 5
Points : 2
Points : 2
Un UNION fonctionne comme si c'était un DISTINCT, or je ne veux pas.

Et je ne sais pas trop comment faire, je l'avoue.
Mariniinha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2011, 14h25   #4
Membre émérite
 
Homme Tony
Développeur .NET
Inscription : novembre 2010
Messages : 570
Détails du profil
Informations personnelles :
Nom : Homme Tony
Localisation : France

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : novembre 2010
Messages : 570
Points : 821
Points : 821
Je ne suis pas sur de comprendre ton problème :

exemple rapide :

Toutes mes activités :

Code :
SELECT actact FROM bpcs61usrf.fact;
Compressor
Air Conditionning
Eco-Cute
Electric
PX

Le nombre d'activités :

Code :
SELECT char(count(*)) FROM bpcs61usrf.fact;
5

Toutes mes activités et une ligne à la fin avec le nombre d'activités :

Code :
1
2
SELECT actact FROM bpcs61usrf.fact
union SELECT char(count(*)) FROM bpcs61usrf.fact;
Compressor
Air Conditionning
Eco-Cute
Electric
PX
5
asmduty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2011, 16h13   #5
Invité de passage
 
Femme Marina
Étudiant
Inscription : octobre 2011
Messages : 5
Détails du profil
Informations personnelles :
Nom : Femme Marina
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2011
Messages : 5
Points : 2
Points : 2
J'ai fait autrement, j'ai tout fait en php, car je ne maitrise pas vraiment le SQL, je poste ce que j'ai fiat au cas où :

Code :
1
2
3
4
5
6
7
8
9
$i = 0;
while ($donnees = $requete->fetch())
	{ 
		$i++;
		$prix[$i]=$donnees[4];
		echo '<tr><td>'.$donnees[0].'</td><td>'.$donnees[1].'</td><td>'.$donnees[2].'</td><td>'.$donnees[3].'</td><td>'.round($donnees[4], 2).'€</td></tr>';
	}
$somme = array_sum($prix);
echo "<tr><th></th><th></th><th></th><th></th><th>".round($somme, 2)."€</th></tr>";
Mariniinha est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h17.


 
 
 
 
Partenaires

Hébergement Web