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 et SQL. Discussion :

[Requête] Rassembler plusieurs lignes sous une même ligne


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 71
    Points : 31
    Points
    31
    Par défaut [Requête] Rassembler plusieurs lignes sous une même ligne
    Bonjour,

    Je réalise une base de données clients/commande afin de faire un suivi efficace de la clientèle d'une entreprise.

    Je voudrais réalisr une requête afin de connaître les clients qui ont passé une commande et le montant de celle-ci.

    Mon modèle relationnel est en pièce jointe pour une meilleure compréhension! J'ai
    -une table Entreprise avec les coordonnées de celles-ci,
    -une table Commande avec la date de la commande, la date de livraison, le montant des produits commandés, les frais de port et le montant total de la commande (soustotalcommande+transport)
    - une table détail commande: IDProduit, PrixUnitaire, Quantité

    Donc lorsque que je remplis mon formulaire pour rentrer les commandes, j'ai un sous formulaire détail commande avec une ligne par produit commandé.

    Donc lorsque je fais une requête pour savoir quel client a commandé, je peux avoir 3-4 lignes, voire plus.
    Dans ma requête je fais apparaitre:
    - Date Commande
    - IDProduit
    -PrixUnitaire
    - Quantité
    -Total Ligne = PrixUnitaire*Quantité
    Jusqu'ici cela fontionne, mais j'ai une ligne par produit qui apparaît.

    Et je voudrais également mettre les frais de transport et le TOTAL Commande. Donc comment "regrouper" mes trois lignes de produits commandés en une seule et aditionner le tout.

    Je ne sais pa si je suis très claire, alors je mets ma requête en piece jointe également!

    Merci d'avance à ceux qui pourront m'aiguiller ou me filer un petit coup de main

    Laure
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Bonjour !

    Ce qui m'aiderait pour tenter de te donnes une solution serait d'avoir - non pas une image du résultat de ta requête mais - le code sql de cette dernière.

    Merci d'avance !

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 71
    Points : 31
    Points
    31
    Par défaut
    j'suis qu'une petite débutante moi...
    Voila le SQL de ma requête:

    SELECT TEntreprise.RaisonSociale, TCommande.DateCommande, TDetailCommande.IDProduit, TDetailCommande.Quantite, TDetailCommande.PrixUnitaire, [PrixUnitaire]*[Quantite] AS TotalLigne, TCommande.FraisTransport, [FraisTransport]+[TotalLigne] AS Expr1
    FROM TEntreprise INNER JOIN (TCommande INNER JOIN TDetailCommande ON TCommande.IDCommande = TDetailCommande.IDCommande) ON TEntreprise.IDEntreprise = TCommande.IDEntreprise
    GROUP BY TEntreprise.RaisonSociale, TCommande.DateCommande, TDetailCommande.IDProduit, TDetailCommande.Quantite, TDetailCommande.PrixUnitaire, [PrixUnitaire]*[Quantite], TCommande.FraisTransport, [FraisTransport]+[TotalLigne];



    Je tiens juste à préciser que je n'y connais pas grand chose en SQL... mais si on peut m'aiguiller, je suis preneuse

    Merci!

  4. #4
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Hi !

    Tout est relatif : On est toujours le débutant... d'un autre

    Voilà, je ne sais pas exactement ce que tu souhaites obtenir exactement comme données en retour de ta requête mais je te propose un mode de faire pour obtenir une seule ligne selon ton exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT TEntreprise.RaisonSociale, TCommande.DateCommande, Sum(([PrixUnitaire]*[Quantite])+[Transport]) AS TotalLigne
    FROM TEntreprise INNER JOIN (TCommande INNER JOIN TDetailCommande ON TCommande.IDCommande = TDetailCommande.IDCOmmande) ON TEntreprise.IdEntreprise = TCommande.IDEntreprise
    GROUP BY TEntreprise.RaisonSociale, TCommande.DateCommande;
    Colles ce code dans une nouvelle requête après avoir affiché le mode SQL (après avoir effacé le Select... proposé)

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 71
    Points : 31
    Points
    31
    Par défaut
    Merci pour le coup de main!

    En fait j'ai amélioré encore un peu, car les frais de transport étaient appliqués à chaque produit commandé plutôt qu'à la totalité de la commande, et la remise n'était pas appliquée...

    Seulement j'ai toujours un petit soucis: quand je clique sur ma requête, une fenêtre s'ouvre dans laquelle je dois saisir les frais de transport. Pourquoi ne sont-ils pas directement indiqués dans ma requête?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [TEntreprise].[RaisonSociale], [TCommande].[DateCommande], Sum(([PrixUnitaire]*[Quantite]-[PrixUnitaire]*[Quantite]*[Remise]+[Transport]))  AS TotalLigne
    FROM TEntreprise INNER JOIN (TCommande INNER JOIN TDetailCommande ON [TCommande].[IDCommande]=[TDetailCommande].[IDCOmmande]) ON [TEntreprise].[IdEntreprise]=[TCommande].[IDEntreprise]
    GROUP BY [TEntreprise].[RaisonSociale], [TCommande].[DateCommande];
    Merci

    Laure

  6. #6
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Hello Laure !

    Désolé mais je n'était pas chez-moi hier... Par contre, je n'ai pas les éléments me permettant de répondre à ta question...
    A priori, tu ne peux pas inclure les frais de transport dans ta requête. En effet, ce serait éventuellement possible mais compliquerait vraiment les choses. Ce que je te conseille serait d'ajouter ces frais de transport directement sur l'état où tu imprimes la facture.

    Si tu le souhaites, je peux regarder cela si tu joins à ta prochaine réponse ta base de données compressée au maximum.

    A+

    Bernard.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 71
    Points : 31
    Points
    31
    Par défaut
    Bonjour Bernard,

    Merci beaucoup pour la réponse et la proposition. Je vais laisser cela comme ça pour le moment, tant pis pour les frais de transport. Je pense que ça suffira

    Merci en tout cas, ça fait plaisir de voir que certains sont prêts à aider comme ça.



    Laure

  8. #8
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Si tu sauvegardes la requête que je t'ai envoyé sous le doux nom de : Laure041, ...

    Tu peux créer une nouvelle requête dans laquelle tu colles le code SQL ci-dessous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Laure041.RaisonSociale, Laure041.DateCommande, Laure041.TotalLigne, TCommande.Transport, [TotalLigne]+[Transport] AS TotalGlobal
    FROM TCommande INNER JOIN Laure041 ON TCommande.IDCommande = Laure041.IDCommande;
    Bon dev !

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

Discussions similaires

  1. Fonction si sur plusieurs cellules d'une même ligne
    Par sangoben dans le forum Excel
    Réponses: 2
    Dernier message: 01/07/2010, 08h33
  2. [AC-2000] obtenir plusieurs enregistrements sur une même ligne
    Par woant dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 14/05/2009, 17h31
  3. comment écrire plusieurs instructions sur une même ligne ?
    Par Ekimasu dans le forum Général Python
    Réponses: 3
    Dernier message: 31/10/2008, 10h30
  4. [awk] Utiliser plusieurs FS sur une même ligne
    Par novices dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 06/08/2008, 18h45
  5. [Tableaux] plusieurs tableaux sur une même ligne
    Par zugolin dans le forum Langage
    Réponses: 6
    Dernier message: 12/01/2008, 23h29

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