Bonjour,
Pour commencer je fais du SQL depuis peu donc merci de votre patience.
Je suis bloqué sur une requête je m'explique :
J'aimerais pouvoir faire une addition entre deux champs d'une même table qui ont une correspondance. Je met un morceau de la table et exemple de résultat avec si j'affiche tout.
Commande
----------
no_ligne
desc
quantite
montant
taxe_ligne
no_ligne no_doc desc quantite montant taxe_ligne 1 doc1 article a 1 10 Null 2 doc1 taxe art a 1 5 1 1 doc2 article b 1 30 Null 2 doc2 taxe art b 1 10 1
Je veux que ma requête affiche que la ligne 1 avec 'article a' mais que seul le montant soit modifié en additionnant le montant des deux lignes. Il faut également que je fasse correspondre le numéro de document que ce soit montant de la ligne 1 du doc1 + montant ligne 2 du doc 1 grace au champs taxe ligne qui fait la correspondance entre les deux lignes.
J'ai essayé de faire correspondre avec un case mais je n'ai aucune idée de comment faire autrement actuellement. Je sais que le case fonctionne si on renvoit seulement un résultat.
Voici un ex de requête que j'ai testé :
J'avais également vu l'utilisation du WHERE IN mais je ne vois pas comment faire une addition.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 SELECT no_ligne, no_doc, desc, quantite, CASE WHEN desc like 'taxe%' AND no_ligne IN (SELECT taxe_ligne from Commande) AND No_doc IN (SELECT No_doc FROM Commande THEN montant + (SELECT CASE WHEN desc like 'taxe%' THEN montant END FROM Commande) END ,taxe_ligne from commande
La requête qui intégrera ce morceau renvois 300k lignes.
j’espère avoir été assez claire.
Merci d'avance.
Partager