2010-07-04 5 views
2
 
Trans Id Date  Description  Credit  Debit 
1   12/05/2009 Amount Deposited 1000   1000 
2   15/05/2009 Amount withdrawn -500   500 
3   20/05/2009 Deposited   2000   2500 
4   25/05/2009 Amount withdrawn -1000   1500 
          1500 

Trans ID est la principale clébesoin Sql requêtes pour le scénario

je besoin de la sortie comme suit

 
Trans Id Date   Description  Amount 
1   12/05/2009 Amount Deposited 1000 
2   15/05/2009 Amount withdrawn 500 
3   20/05/2009 Deposited   2000 
4   25/05/2009 Amount withdrawn 1000 
         balance   1500 

besoin requête Sql pour générer la sortie

+4

Qu'avez-vous fait jusqu'à présent? Quel SQL avez-vous? La communauté stackoverflow ne fera pas votre travail pour vous, surtout si vous ne montrez pas vos efforts en premier. – Oded

+1

Et pouvez-vous ** expliquer ** ce que vous voulez faire ?? Vous ne montrez que les données d'origine et la sortie .... que voulez-vous faire à vos données d'origine pour obtenir cette sortie ?? Par groupe? Filtrer par? Trier ? S'il vous plaît, expliquez!! Sinon, nous devrons simplement deviner ...... –

+1

Votre dernière colonne du 1er jeu de données devrait être "solde", non? – gbn

Répondre

0

Vous pouvez utiliser un déclaration de cas pour trouver le maximum, et abs pour assurer un nombre positif:

select [trans id] 
,  date 
,  description 
,  abs(case when credit > debit then credit else debit end) as Amount 
from YourTable 

Relisant votre question, je doute que ce soit la réponse que vous cherchez. S'il vous plaît expliquer dans un peu plus de détails.

2

Je pense que cela fait ce que vous voulez:

SELECT TransId, Date, Description, ABS(Credit) AS Amount 
FROM transactions 
UNION ALL 
SELECT NULL, NULL, 'balance', SUM(Credit) 
FROM transactions; 

Résultat:

 
TransId Date  Description  Amount 
1  2009-05-12 Amount Deposited 1000    
2  2009-05-15 Amount Withdrawn 500    
3  2009-05-20 Deposited   2000    
4  2009-05-25 Amount Withdrawn 1000    
NULL  NULL  balance   1500    
Questions connexes