SQL tri calcul sur 2 tables - SQL/NoSQL - Programmation
Marsh Posté le 08-04-2011 à 14:45:21
Non, t'es pas clair du tout En +, tu sembles ne pas nous donner le bon contenu de la table B car dans en début de ton post, on a l'impression qu'il n'y a qu'un champ dedans, alors que par la suite, tu parles d'autres champs. Merci aussi de nous par quelle relations ces 2 tables sont liées entre elles...
Marsh Posté le 08-04-2011 à 15:06:05
Dans la Table B j'ai besoin que de Ref le reste ne m'es pas utile
donc Table B
Ref--> text
Designation--> text
le 2 tables son liée pour Ref justement
En faite ce que je veux faire c'est 2 calcul bien différents entre table A et B
un test qui va vérifier tablA.ref qui est présent dans la tableB.ref
si c'est le cas j'ai plusieurs calcul :
SUM(tableA.qt*tableA.prix) As TPixA
SUM(tableA.qt) As TqtA
si jamais ma ref n'est pas trouver on a 2 autres calcul
SUM(tableA.qt*tableA.prix) As TPixB
SUM(tableA.qt) As TqtB
Après j'ai un tri par compte et le résulta devrai me donner ceci par exemple
Compte - TqtA - TPixA - TqtB - TqtB
xy 1500 2500 250 500
xx 1450 2500 300 350
J'arrive sans souci à faire le tri de ma table A avec le calcul des qt et prix
Mais la je veux faire les calculs par rapport au ref présent dans la tableB c'est pour faire des states.
voila et je suis sous MySql
Marsh Posté le 08-04-2011 à 15:21:10
Ben déjà, la mise en page que tu proposes ne pourra pas se faire avec juste du SQL à mon avis
Ensuite, si ton besoin est juste de savoir si la réf est présente dans la table B, suffit de rajouter le champ désignation et faire un LEFT JOIN entre table A et table B. La désignation vaudra NULL si la réf de la table A n'est pas présente dans B...
Marsh Posté le 08-04-2011 à 15:34:16
Ca devrait marcher
Code :
|
Rassure moi, quand tu parles de champ text, c'est pas vraiment des champs de type text, si ?
Marsh Posté le 08-04-2011 à 15:38:23
Si malheureusement j'ai pas trop le choix car une ref peut être numérique ou alpha ou alphanumérique.
Marsh Posté le 08-04-2011 à 16:06:15
Jiibax a écrit : Si malheureusement j'ai pas trop le choix car une ref peut être numérique ou alpha ou alphanumérique. |
Dans ce cas, utilise une clé numérique non signifiante, ou au moins un type char plutôt que text ... j'ose pas imaginer les indexs ...
Marsh Posté le 11-04-2011 à 10:19:29
C'est clair Vaut mieux avoir une clé primaire de type integer. C'est bien plus efficace en terme de perfs (pour les jointures) et en terme de stockage (moins de place).
Marsh Posté le 11-04-2011 à 15:26:21
Merci pour la requête qui m'a bien aider J'ai du un peu la modifier pour certaines raison et pour ireport car j'obtenu pas le resulta voulu Maintenant c'est ok !! merci
Par contre c'est une table qui restera fixe et qui auras au grand max 150 enregistrements.
Désoler je débute en sql.
Marsh Posté le 08-04-2011 à 14:34:36
Bonjour,
Je recherche une requete sql pouvant trier et calculer sur 2 tables
table A:
Compte --> text
ref --> Text
qt --> int
Prix --> float
table B
ref --> Text
Et je voudrais calculer est récupéré les données de la table A
1 trier par compte
2 calculer les qt total mais la est le pb car j'ai besoin de 2 chiffres différent
a) si tbaleA.ref est présent dans la tableB. ref alors on calcule la qt est récupère vers Bqt
b) sinon on calcule est on récupère ver Aqt
3) calculer le prix total par rapport à la quantité
a) si tbaleA.ref est present dans la table B. ref alors on calcule la qte est récupère vers Bprix
b) sinon on calcule est on récupère ver Aprix
Donc j'aurai comme tableau :
compte - Aqt - Bqt - Aprix - Bprix
Donc j'ai vue avec des CASE ou JOIN mais pas evident donc si quelqu'un pouvais juste m'expliquai comment faire...
Voila j’espère avoir été claire pas évident à expliquer !!!
Merci d'avance