IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Création d'une requête SQL imbriquée


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Portugal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 5
    Points : 5
    Points
    5
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    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".

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Portugal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    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.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    Je ne suis pas sur de comprendre ton problème :

    exemple rapide :

    Toutes mes activités :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select actact from bpcs61usrf.fact;
    Compressor
    Air Conditionning
    Eco-Cute
    Electric
    PX

    Le nombre d'activités :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select char(count(*)) from bpcs61usrf.fact;
    5

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select actact from bpcs61usrf.fact
    union select char(count(*)) from bpcs61usrf.fact;
    Compressor
    Air Conditionning
    Eco-Cute
    Electric
    PX
    5

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Portugal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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>";

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création d'une requête sql
    Par tottiasr dans le forum Langage SQL
    Réponses: 5
    Dernier message: 07/06/2011, 16h29
  2. Création d'une requête SQL en 4D
    Par tphetsavan dans le forum 4D
    Réponses: 2
    Dernier message: 11/05/2010, 17h32
  3. [AC-2003] création d'une requête SQL directe en VBA
    Par patbeautifulday dans le forum VBA Access
    Réponses: 3
    Dernier message: 25/06/2009, 14h09
  4. Réponses: 1
    Dernier message: 03/04/2009, 10h09
  5. problème de création d'une requête SQL
    Par crushilefou dans le forum Requêtes
    Réponses: 9
    Dernier message: 07/12/2007, 11h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo