Additions et multiplication dans des requêtes SQL
Résolu
emrh
Messages postés
427
Date d'inscription
Statut
Membre
Dernière intervention
-
emrh Messages postés 427 Date d'inscription Statut Membre Dernière intervention -
emrh Messages postés 427 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Dans ma base de données gérée avec phpMyAdmin, j'ai une table 'compositions' qui contient les colonnes suivantes :
id_composition (clé primaire AI)
id_contrat (clé étrangère) // N° du contrat client
id_prestation (clé étrangère) // Identifiant d'une ref prestation
prix // Prix appliqué à cette ref
quantites // Quantité de la ref facturé
1. Existe t-il un moyen de récupérer par id_contrat le montant total de toutes les id_prestation rattachées
à id_contrat et dont le calcul est prix * quantites ?
Exemple résultat recherché :
Contrat n° 123 Total : 527,00
Contrat n° 124 Total : 1824,37
...
Je viens de tester ça qui me revoit un résultat avec des réponses erronées
(quantites_total ne correspondant pas à la réalité) et surtout je ne sais pas comment faire l'opération
prix * quantites
2. Pour simplifier n'ai-je pas intérêt à ajouter une colonne contenant le résultat de prix * quantité car
il est possible que certaines prestations ne soient pas facturées au même prix pour tous les clients (remises par ex) ?
Je n'aurai plus qu'à faire une addition SUM mais comment grouper les id_contrat et grouper les id_prestation dans une même requête ?
3. J'ai pensé aussi faire la multiplication du côté PHP mais comment m'y prendre pour restituer chaque total
de chaque contrat sans boucles infernales ? Un array certainement non ?
Merci d'avance pour votre aide !
Dans ma base de données gérée avec phpMyAdmin, j'ai une table 'compositions' qui contient les colonnes suivantes :
id_composition (clé primaire AI)
id_contrat (clé étrangère) // N° du contrat client
id_prestation (clé étrangère) // Identifiant d'une ref prestation
prix // Prix appliqué à cette ref
quantites // Quantité de la ref facturé
1. Existe t-il un moyen de récupérer par id_contrat le montant total de toutes les id_prestation rattachées
à id_contrat et dont le calcul est prix * quantites ?
Exemple résultat recherché :
Contrat n° 123 Total : 527,00
Contrat n° 124 Total : 1824,37
...
Je viens de tester ça qui me revoit un résultat avec des réponses erronées
(quantites_total ne correspondant pas à la réalité) et surtout je ne sais pas comment faire l'opération
prix * quantites
SELECT id_contrat,id_prestation, SUM(quantites) AS quantites_total FROM compositions GROUP BY id_prestation
2. Pour simplifier n'ai-je pas intérêt à ajouter une colonne contenant le résultat de prix * quantité car
il est possible que certaines prestations ne soient pas facturées au même prix pour tous les clients (remises par ex) ?
Je n'aurai plus qu'à faire une addition SUM mais comment grouper les id_contrat et grouper les id_prestation dans une même requête ?
3. J'ai pensé aussi faire la multiplication du côté PHP mais comment m'y prendre pour restituer chaque total
de chaque contrat sans boucles infernales ? Un array certainement non ?
Merci d'avance pour votre aide !
Configuration: Linux / Chrome 99.0.4844.51
A voir également:
- Requete sql pix
- Code ascii pix - Guide
- Que cache l'ours polaire pix ✓ - Forum Google Chrome
- Supprimez les composantes rouge et verte de cette image. quel mot apparaît ? pix - Forum Word
- Dans la table des matières de ce document le chapitre 6 et ses 2 sections n'apparaissent pas pix - Forum Word
- Mot de passe julia pix - Forum Facebook
2 réponses
Bonjour,
Question déplacée dans le forum Bases de données .. vu que ça ne concerne pas le code php directement .. mais une requête SQL... ( attention pour tes prochaines questions merci)
Donc..
Tu peux faire des "sous-requêtes".
Par exemple un truc du genre:
Question déplacée dans le forum Bases de données .. vu que ça ne concerne pas le code php directement .. mais une requête SQL... ( attention pour tes prochaines questions merci)
Donc..
Tu peux faire des "sous-requêtes".
Par exemple un truc du genre:
SELECT T.id_contrat, T.id_prestation, SUM(T.total) as PRIX_TOTAL FROM ( SELECT id_contrat,id_prestation, prix, quantite, prix*quantite as total FROM compositions ) T GROUP BY T.id_prestation
Bonjour Jordan,
(Désolé pour le mauvais classement, je cherchais langage 'SQL' et ne trouvant pas j'ai opté pour PHP sans voir
la rubrique bdd)
Tu m'as drôlement aidé car dans mes bouquins on ne parle jamais de sous-requête !
Grâce à ta piste j'ai pu sortir ça :
Qui me sort bien mon numéro de contrat et le total facturé lui correspondant !
Merci beaucoup !
(Désolé pour le mauvais classement, je cherchais langage 'SQL' et ne trouvant pas j'ai opté pour PHP sans voir
la rubrique bdd)
Tu m'as drôlement aidé car dans mes bouquins on ne parle jamais de sous-requête !
Grâce à ta piste j'ai pu sortir ça :
SELECT T.id_contrat, SUM(T.total) AS Total_contrat FROM (SELECT id_contrat, prix*quantites AS total FROM compositions ORDER BY id_contrat) AS T GROUP BY id_contrat ORDER BY id_contrat ASC
Qui me sort bien mon numéro de contrat et le total facturé lui correspondant !
Merci beaucoup !