{MySQL} Utiliser champ d'1 requete pr requete

Bonjour,

Bonjour,

J'ai fait migrer une base de données Access sur mySQL, j'utilise donc PHPMyAdmin. C'est une base de donnees qui enregistre les ventes et les clients.

Je suis actuellement en train de recopier mes requêtes que j'avais faites sous access. J'ai d'abord écrit la requête sale_history qui me donne le montant pour chaque vente 9il vient prendre la quantité achetée dans la table DetailsVente et vient chercher le Prix de l'objet et multiplie les deux champs ce qui me donne le champs calcule TotalLigne.

Je dois maintenant écrire ma requête qui me permet d'obtenir le montant dépensé par client, sur Access, pas de souci vu que l'on a accès au champs des requêtes mais comment faire sous PHPMyAdmin ?

Cordialement,

Guillaume
Configuration: Windows XP
Firefox 3.0.12

3 réponses

  1. Rebonjour,

    Pour être plus précis, la requête suivante (nommons la q_sale_history) marche et me donne un résultat :

    SELECT hyp_sale.sale_date, hyp_saleitem.saleitem_sale_id, hyp_saleitem.saleitem_id, hyp_sale.sale_user_id, hyp_sale.sale_place_id, hyp_sale.sale_cust_id, hyp_saleitem.saleitem_item_id, hyp_item.item_price, hyp_saleitem.saleitem_quant, hyp_saleitem.saleitem_disc, hyp_saleitem.saleitem_red, item_price * saleitem_quant * saleitem_disc /100 - saleitem_red AS TotalLigne
    FROM hyp_sale
    INNER JOIN (
    hyp_item
    INNER JOIN hyp_saleitem ON hyp_item.item_id = hyp_saleitem.saleitem_item_id
    ) ON hyp_sale.sale_id = hyp_saleitem.saleitem_sale_id
    LIMIT 0 , 30;

    Ensuite je voudrais utiliser le champs TotalLigne :

    SELECT hyp_customer.cust_id, Sum(????.TotalLigne) AS TotalLigneDeSomme

    Comment remplacer les ????

    Merci beaucoup,

    Guillaume
    0
    1. Bonjour,

      Tu peux éventuellement créer une table temporaire contenant le résultat de ton premier select et ensuite faire ton deuxième select sur cette table temporaire, exemple de code
      CREATE TEMPORARY TABLE NomTableTemporaire AS
      SELECT hyp_sale.sale_date, hyp_saleitem.saleitem_sale_id, hyp_saleitem.saleitem_id, hyp_sale.sale_user_id, hyp_sale.sale_place_id, hyp_sale.sale_cust_id, hyp_saleitem.saleitem_item_id, hyp_item.item_price, hyp_saleitem.saleitem_quant, hyp_saleitem.saleitem_disc, hyp_saleitem.saleitem_red, item_price * saleitem_quant * saleitem_disc /100 - saleitem_red AS TotalLigne
      FROM hyp_sale
      INNER JOIN (
      hyp_item
      INNER JOIN hyp_saleitem ON hyp_item.item_id = hyp_saleitem.saleitem_item_id
      ) ON hyp_sale.sale_id = hyp_saleitem.saleitem_sale_id
      LIMIT 0 , 30; 
      et ensuite
      SELECT hyp_customer.cust_id, Sum(NomTableTemporaire.TotalLigne) AS TotalLigneDeSomme 

      A plus
      0
      1. Bonjour,

        Merci christounet, ça marche nickel,

        Bon week-end

        Guillaume
        0