Soustraction en SQL ?

julaf_canada Messages postés 4 Statut Membre -  
julaf_canada Messages postés 4 Statut Membre -
Bonjour,

J'ai essaye de chercher dans beaucoup de posts present la solution, mais je reste sans reponses...
Je fais une requete qui me retourne quelque chose du genre :

NOM ID ChargeType Amount
----------------------------------------------------
A 54031 0 5
A 54031 1 2
B 54032 0 6
B 54032 1 5
...

Je voudrais obtenir quelque chose du genre

A 3 (soit ID2-ID1)
B 1 (soit ID4-ID3)
...

Savez-vous quelle est la meilleure solution ?

Je pensais que AND NOT dans la clause WHERE aurait suffit, mais visiblement il ne soustrait pas.

J'ai egalement fait un DECLARE @sum1, DECLARE @sum2... bla bla bla
et a la fin un select @sum1-@sum2 ; le probleme est que pour ca je dois integrer dans le WHERE ID = '54031', mais je veux que le traitement se fasse automatiquement.

Merci d'avance.
Configuration: Windows Vista
Internet Explorer 7.0

3 réponses

  1. sandul Messages postés 4013 Statut Membre 723
     
    Salut,

    Si je comprends bien, il y a toujours des paires de valeurs; du coup, j'essairerais ceci:
    SELECT r1.nom, r1.id, r1.chargeType, r2.amount - r1.amount
    FROM ta_requête_qui retourne_les_rows_en_question r1, ta_requête_qui retourne_les_rows_en_question r2
    WHERE r1.id = r2.id AND r2.amount > r1.amount


    Requête avec syntaxe Oracle mais facilement adaptable à d'autres bases (utiliser inner join).

    ++
    0
    1. julaf_canada Messages postés 4 Statut Membre
       
      beh c'est un peu l'idee, le probleme, c'est qu'avec cette requete, ca me retourne quelque chose du genre
      a amount(a)
      b amount(a)
      c amount(a)
      ...
      a amount(b)
      b amoun(b)
      ...

      ou alors j'ai manque un truc dans la syntaxe. :S
      0
  2. julaf_canada Messages postés 4 Statut Membre
     
    mon erreur etait au niveau des jointures dans le second WHERE general.
    Seul soucis, c'est que parfois je peut avoir un ID sans differente charge Type
    Exemple

    NOM ID ChargeType Amount
    ----------------------------------------------------
    A 54031 0 5
    A 54031 1 2
    B 54032 0 6
    B 54032 1 5
    C 54033 0 8
    D 54034 0 7
    ...

    mon resultat doit alors etre
    A 3 (soit ID2-ID1)
    B 1 (soit ID4-ID3)
    C 8
    D 7
    ...
    0
  3. julaf_canada Messages postés 4 Statut Membre
     
    un petit up,
    Avez vous une idee de comment faire pour soustraire 2 valeurs lorsque la requete retourne deux valeurs pour un ID, mais garder la valeur retournee si elle est unique.

    NOM ID ChargeType Amount
    ----------------------------------------------------
    A 54031 0 5
    A 54031 1 2
    ...
    C 54033 0 8

    Expected Result:
    A 3
    C 8

    Merci
    0