begin process at 2008 08 08 22:53:38
1 223 628 membres
386 nouveaux aujourd'hui
14 230 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : probleme pour sommer [ SQL Server, MSDE, SQL Express / Requêtes ] (cudenetf)

probleme pour sommer le 20/05/2008 14:44:00

cudenetf
bonjour,
lors d'une requete je voudrais recuperer des sommes mais j'ai un probleme (sinon je ne poserais pas la question sur le forum lol)
j'ai une table facture et une table elem_facture ou apparraissent les lignes des factures avec le smontants
pour obtenir le montant de la facture je dois donc faire la somm des lignes
et une table reglement (il peut y avoir plusieurs reglements pour une facture) ou figure egalement le numero d ela facture
voici ma requete pour essayer de savoir quelle facture a été réglé ou non ...

select  f.num_fac as num_contrat,sum(ht+tva)
             as TTC,sum(montant) from facture as f join elem_fac as e on e.num_fac=f.num_fac
             left join reglements as p on p.num_contrat=f.num_fac
             where f.num_client=44 group by
             f.num_fac, montant
              order by f.num_fac

quand il y a une ligne de facture et un montant ca marche

J'ai fait le test sur 2 factures réglées (le reglement est egal au montant de la facture) : les montants sont egal a 50

cas n°1 : 2 lignes de facture , 2 reglements : j'obitens montant_fac=100 , montant_regl=100
cas n°2 : 1 ligne de facture , 2 reglements : j'obtiens montant_fac=50, montant_regl=100

si j'enleve les sum , etc... je vois bien que dans le premier cas on a 4 tuples et dans le second 2 mai sje sais pas comment obtenir le resultat escompté

Comment puis je faire pour obtenir les bons montants ? ( en passant par la fonction sum si possible parc eque c'est un peu relou de devoir passer par un programme qui traite lignepar ligne)

Merci d'avance ...



Re : probleme pour sommer le 23/05/2008 17:29:16

Malkuth
Membre Club
Le plus evident mais pas forcement le plus optimeser serais des sousrequettes :

select 
   f.num_fac as num_contrat,
   ISNULL((SELECT SUM(e.ht + e.tva) FROM elem_fac AS e WHERE e.num_fac=f.num_fac),0) as TTC_Fact,
   ISNULL((SELECT SUM(p.montant) FROM reglements AS p WHERE p.num_contrat=f.num_fac),0) as TTC_Regl
from 
   facture as f 
where 
   f.num_client=44
order by 
   f.num_fac;


Classé sous : num, facture, montant, fac, reglements

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS