2009-07-17 8 views
0

J'essaie de sommer deux colonnes et de soustraire les deux sommes pour obtenir un solde de deux colonnes. Mais je reçois la même sortie pour les deux requêtes, même si je sais qu'il y a des valeurs négatives. J'ai besoin d'exclure ces valeurs négatives dans la requête.Somme des valeurs négatives dans la colonne monétaire

SELECT SUM(ReceiptAmt) - SUM(BalanceAmt) FROM Receipt 
SELECT SUM(ReceiptAmt) - SUM(BalanceAmt) FROM Receipt WHERE ReceiptAmt > 0.00 

Des idées sur la façon d'exclure les valeurs négatives? Ou même une approche différente à cela.

Répondre

2

cela peut être ce que vous êtes après:

SELECT 
    SUM(case when ReceiptAmt<0 then 0 else ReceiptAmt end) - 
    SUM(case when BalanceAmt<0 then 0 else BalanceAmt end) 
FROM Receipt    
+0

Cela fonctionne en remplaçant les valeurs plutôt que d'ajouter une clause WHERE. Cela m'a aussi aidé à identifier que c'est mon problème. Les valeurs négatives sont négatives et les * deux * colonnes! Donc, bien sûr, il va retourner le même résultat frmo deux de mes requêtes. Merci pour l'aide. –

0

Est-ce que BalanceAmt devrait aussi être dans la clause where?

WHERE ReceiptAmt > 0.00 
     AND BalanceAmt > 0.00 
Questions connexes