2017-10-13 15 views
0

J'ai les données ci-dessous.Manipulation de données SSRS dans les lignes

SRNO Date   Credit Debit ClosingBal OpeningBal 
1  01 Oct 2017  10000 100  9900  0 
2  02 Oct 2017  20000 200  29700  9900 
3  03 Oct 2017  30000 300  59400  29700 
4  04 Oct 2017  40000 400  99000  59400 
5  05 Oct 2017  50000 500  148500  99000 

Ici, je suis en train de manipuler deux colonnes ClosingBal et OpeningBal. Closing Bal est la différence entre crédit et débit + Solde des derniers jours.

Je dois indiquer le solde d'ouverture tel que le solde de clôture des derniers jours. c'est-à-dire que dans la première ligne, la balance d'ouverture est toujours 0 (zéro) et que les données de deuxième rangée sont simplement copiées de la rangée [i] colonne [j] à la colonne [i + 1] colonne [j].

Besoin d'aide.

+0

Quelles sont les données réelles avez-vous dans votre base de données (ou chaque fois que les données proviennent) Avez-vous juste SRNO; Rendez-vous amoureux; Crédit; Débit? Et voulez-vous faire ce travail dans SSRS ou en SQL. Veuillez indiquer les versions des services de rapports et de la base de données que vous utilisez. –

Répondre

0

En supposant que vous avez seulement SRNO; Rendez-vous amoureux; Crédit et Débit dans votre ensemble de données, vous pouvez ensuite faire ce qui suit.

j'ai utilisé ce qui suit pour reproduire votre ensemble de données de l'échantillon et l'a appelé DataSet1

DECLARE @t TABLE(SRNO int, TranDate Date, Credit int, Debit int) 
INSERT INTO @t VALUES 
(1, '20171001', 10000, 100), 
(2, '20171002', 20000, 200), 
(3, '20171003', 30000, 300), 
(4, '20171004', 40000, 400), 
(5, '20171005', 50000, 500) 

SELECT * FROM @t 

J'ai ensuite créé une table simple montrant les quatre colonnes ainsi que deux colonnes supplémentaires, un pour closingbal et un pour openingbal.

Set expression ClosingBal à:

=RunningValue(Fields!Credit.Value-Fields!Debit.Value, Sum, "DataSet1") 

Définir une expression OpeningBal à

=Previous(RunningValue(Fields!Credit.Value-Fields!Debit.Value, Sum, "DataSet1")) 

Cela nous donne le résultat suivant. enter image description here

Si vous avez besoin d'un zéro dans la première colonne, alors l'expression doit changer pour ceci.

=IIF(
    Previous(RunningValue(Fields!Credit.Value-Fields!Debit.Value, Sum, "DataSet1"))=Nothing 
    ,0 
    ,Previous(RunningValue(Fields!Credit.Value-Fields!Debit.Value, Sum, "DataSet1")) 
) 

Qui nous donne alors cette sortie.

enter image description here

+0

Merci pour votre aide. J'ai mis en place la même solution. –