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

Langage SQL Discussion :

PRODUIT prix total= prix unitaire * quantité


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Points : 61
    Points
    61
    Par défaut PRODUIT prix total= prix unitaire * quantité
    Bonjour,


    J'ai une BDD simple avec 2 tables "ensemble" et "composant", reliées par une clé étrangère avec le champs quantité.
    Composant a un champs prix unitaire. J'aimerais savoir comment quel code dois je utiliser pour connaitre le prix total=prix unitaire * quantité.

    Merci d'avance.

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Merci de respecter les règles de ce forum en donnant notamment la structure de tes tables (dans ton message, on ne sait pas quelles colonnes font la condition de jointure), la requête que tu as essayée, éventuellement un petit jeu de données et le résultat attendu.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Points : 61
    Points
    61
    Par défaut
    C'est la référence de l'ensemble et la référence du composant qui font la jointure.

    J'avais pensé à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT SUM([qté]*[prix]) AS [total]
      FROM COMPOSANT AS C, Ensemble AS E, intègre AS I
     WHERE (((I.ref)=E.ref) And (C.ref=I.ref)

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Dans ton premier post tu parles de deux tables dans le deuxième il y en a trois.
    On n'a toujours pas la structure des tables ni leur clé, ni les clé étrangère.
    On ne sait pas de quoi tu veux calculer le prix total, par ensemble, pour toute la table pour un ensemble.

    Quel est le problème avec la requete que tu nous a fourni, mis à part que les jointures ne sont pas normées, et qu'il y a un nombre de parenthèse impressionnant qui nuit à la lisibilité de la bête. Je l'a réécrit avec les jointures comme il faut.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT SUM(qté*prix) AS total
      FROM COMPOSANT AS C
    inner join  intègre AS I
    on C.ref=I.ref
    inner join  Ensemble AS E
    on  I.ref=E.ref;
    PS en relisant bien ta requête initiale il y a une parenthèse ouvrante qui ne ferme pas, je n'irait pas jusqu'à dire qu'il y a une parenthèse fermante manquante.
    Cordialement
    Soazig

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Points : 61
    Points
    61
    Par défaut
    j'ai 2 tables indépendantes
    Ensemble et Composant, avec une table Intègre entre les 2, qui fait office de laison avec un champs qté (quantité).


    La cardinalité entre intègre et ensemble c'est 0-1 (côté intègre) et 0-n pour Ensemble.

    La cardinalité entre intègre et Composant c'est 1-n (côté) Composant et 0-1 (côté intègre)


    La table Ensemble contient les champs
    RefEns (cléprimaire)
    DésignationEns
    PrixVHT

    Table composant:
    RefComp (clé primaire)
    DésignationComp
    PrixHT


    Table Intègre:
    RefComp (clé)
    RefEns (clé)
    Qté

    pour la table intègre je ne sais pas le nom du type de cette liaison mais ça va quand même et pareil pour les clés (je pense clés étrangères)


    Donc voilà mon architecture
    Pour d'autre questions, je suis là.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour
    Au vu des tables cela ressemble à une nomenclature.
    En revanche je n'ai pas compris à quoi servait le PrixVHT de la table Ensemble, à moins que ce soit ce que tu essaies de calculer.
    Tu n'as pas répondu à
    On ne sait pas de quoi tu veux calculer le prix total, par ensemble, pour toute la table pour un ensemble.
    Ni à
    Quel est le problème avec la requete que tu nous a fourni,
    Il nous faudrait aussi ton SGBD
    Tes colonnes changent de noms à chaque post cela devient gênant.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT	E.RefEns,
    	DésignationEns,
    	 SUM([qté]*prix) AS prix_de_l_ensemble
    FROM COMPOSANT AS C
    	INNER JOIN  [intègre] AS I
    	ON C.RefComp=I.RefComp
    INNER JOIN  Ensemble AS E
    	ON  I.RefEns=E.RefEns
    group by E.RefEns,
    DésignationEns;
    A+
    Soazig

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Points : 61
    Points
    61
    Par défaut
    Je voudrais juste afficher la somme totale des composants pour un ensemble

    Comment peut on intégrer dans un message une image pour le SGBD?

    prix taotal= prix Achat unitaire du composant * nombre de ce composant

    chaque ensemble peut avoir plusieurs composants

    pour le prix vente d'un ensemble, je m'y occupe pas trop On peut le saisir et l'afficher avec une création d'état

  8. #8
    Membre habitué Avatar de bobmidou
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 121
    Points : 149
    Points
    149
    Par défaut
    Salut

    Si j'ai bien compris tes tables essaye ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    select intègre.RefEns , count(*),sum(intègre.Qté * composant.prixht)
    from Ensemble, intègre, composant
    where composant.RefComp = intègre.RefComp  and
    Ensemble.RefEns = intègre.RefEns
    group by intègre.RefEns
    J'ai ajouté intègre.Refens et count(*) pour voir le nombre de composants pour chaque ensemble. mais tu peux faire mieux avec join.


    Bonne chance
    --<< Il n y a que les clous qui ne plantent pas >>---

  9. #9
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    c'est la même requête que soazig, en non normalisée que vous postez

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Points : 61
    Points
    61
    Par défaut
    je vais essayer plus tard, au pire dans la soirée. Je vous dirais ce que ça me donne. J'utilise Windev et je fais une génération d'état

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Points : 61
    Points
    61
    Par défaut
    en fait j'ai crée un nouvel attribut "prixTotal" associé à l'association "intégre", comme ça au lieu de faire une requête compliqué avec une liaison j'ai juste à appelé beaucoup plus simplement avec windev cet attribut pour faire un Etat

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Tu veux le prix d'un ensemble c'est ce qu'on t'a donné bobmidou et moi.
    Qu'ont ces requêtes? Est-ce qu'elles ne donnent pas le bon résultat, est-ce que tu as un message d'erreur.

    Pourquoi veux tu faire une horreur pareille mettre le prixTotal de l'association intègre? De plus cela ne règlera pas le problème, il faudra que tu l'alimentes?
    Et comme feras-tu?

    Je sais que windev ou hyperfile ne sont pas au mieux au niveau sql et fonction d'agrégation, mais je pensais néanmoins qu'ils avaient fait des progrès depuis 2001.

    A+
    Soazig

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Points : 61
    Points
    61
    Par défaut
    c'est le prix total de tous les composants par ensemble.

    J'utilise la version express de windev 15 (de 2010) et c'est facile à mettre en oeuvre

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    c'est le prix total de tous les composants par ensemble.
    C'est ce qu'on t'a fourni avec bobmidou.

    prix taotal= prix Achat unitaire du composant * nombre de ce composant
    Nous t'avons proposé quantité * prixht est-ce que la colonne qté ne contient pas le nombre de composant d'un ensemble?
    Est-ce que le prixht n'est pas le prix d'achat unitaire du composant?
    As-tu au moins testé! ou tu postes juste pour nous faire perdre notre temps.
    On te propose des requêtes, et tu continues à poster sans nous dire si tu les as essayé, si elles conviennent? et si elles ne conviennent pas?

    J'utilise la version express de windev 15 (de 2010) et c'est facile à mettre en oeuvre
    Je n'ai pas dit que c'était compliqué à mettre en oeuvre mais que lorsque j'ai essayé de l'utiliser le SQL était pauvre.

    Comment vas-tu alimenter le prixTotal de l'association intègre?
    A+
    Soazig

Discussions similaires

  1. Calcul total = prix * quantité
    Par kof_eve dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 08/09/2011, 12h04
  2. [osCommerce] Affichage prix total dans l'e-mail de confirmation de commande
    Par gandahar1983 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 22/12/2010, 13h31
  3. actualisation total = prix *qté
    Par cutpeter56 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 29/04/2008, 11h26
  4. Calcul prix total d'un panier
    Par kluck3000 dans le forum Langage
    Réponses: 4
    Dernier message: 22/03/2008, 18h54
  5. Table produit. Un produit a plusieurs prix
    Par Cyrius dans le forum Requêtes
    Réponses: 10
    Dernier message: 30/10/2005, 00h34

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