Partage
  • Partager sur Facebook
  • Partager sur Twitter

Mettre un resultat de requete sur plusieurs lignes

Sujet résolu
    7 janvier 2011 à 11:11:07

    salut!

    Je viens encore casser les pieds des roxors en BDD...

    Je doit faire des exports de BDD pour la compta, ce qui nécessite une mise en forme spéciale, du genre:

    +------------+----------------+--------+--------+
    | Commande   | Compte         | Débit  | Crédit |
    +------------+----------------+--------+--------+
    | 1          | Produits HT    |        | 300    | <= Montant H.T des produits achetés par le client
    +------------+----------------+--------+--------+
    | 1          | TVA            |        | 60.77  | <= Montant de la TVA (Produits + Port)
    +------------+----------------+--------+--------+
    | 1          | Frais de port  |        | 10.03  | <= Montant des frais de port H.T
    +------------+----------------+--------+--------+
    | 1          | Client         | 380.80 |        | <= Somme débitée au client
    +------------+----------------+--------+--------+
    | 2          | Produits HT    |        | ...    |
    +------------+----------------+--------+--------+
    | 2          | TVA            |        | ...    |
    +------------+----------------+--------+--------+
    | 2          | Frais de port  |        | ...    |
    +------------+----------------+--------+--------+
    | 2          | Client         | ...    |        |
    +------------+----------------+--------+--------+
    [...]
    


    Comme vous le voyez, pour chaque commande (1 ligne dans ma table "facture") je doit répartir sur 4 lignes...

    Est-ce possible, et si oui, comment?

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      7 janvier 2011 à 12:27:07

      En supposant que ta table facture a la structure suivante:

      - id_commande
      - credit_produits_ht
      - credit_tva
      - credit_frais_de_port
      - debit_client

      Alors une requête du genre de la suivante devrait faire l'affaire:

      SELECT id_commande, 'Produits HT' AS Compte, NULL AS Debit, credit_produits_ht AS Credit
      UNION
      SELECT id_commande, 'TVA', NULL, credit_tva
      UNION
      SELECT id_commande, 'Frais de port', NULL, credit_frais_de_port
      UNION
      SELECT id_commande, 'Client', debit_client, NULL
      ORDER BY id_commande, FIELD(Compte, 'Produits HT', 'TVA', 'Frais de port', 'Client');
      
      • Partager sur Facebook
      • Partager sur Twitter
        7 janvier 2011 à 19:54:50

        C'est du cosmétique, donc à faire en PHP, pas en SQL. Ce sera beaucoup plus simple.
        • Partager sur Facebook
        • Partager sur Twitter

        Mettre un resultat de requete sur plusieurs lignes

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown