SQL Server - Movimiento con saldo entre fechas

 
Vista:
Imágen de perfil de Reinel Gallego
Val: 2
Ha disminuido su posición en 18 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

Movimiento con saldo entre fechas

Publicado por Reinel Gallego (1 intervención) el 21/10/2020 02:02:31
Reinel ([email protected])

Tengo una tabla que maneja movimiento de dinero. En la consulta que yo saco general para un nombre el me saca bien todos los movimientos con su respectivo saldo (sin fechas). Pero a la hora de yo sacar entre fechas no me arrastra el saldo anterior y de ahí para abajo me muestra negativos todos los saldos en algunos casos dependiendo del saldo anterior. con este código es que estoy trabajando. Como lo debo trabajar (Por su ayuda muchas gracias)

SIN FECHA

1
2
SELECT mcm_comprador, mcm_fecha, Trim(com_razonsocial + ' ' + com_apellido1 + ' ' + com_apellido2 + ' ' + com_nombre1 + ' ' + com_nombre2) AS Nombre, format(mcm_debito, '#,##') AS Débito,
FORMAT(mcm_credito, '#,##') AS Crédito, Saldo = SUM(mcm_debito - mcm_credito) OVER(PARTITION BY mcm_comprador ORDER BY mcm_comprador, mcm_id ROWS UNBOUNDED PRECEDING) FROM movcomprador INNER JOIN comprador ON com_id = mcm_comprador WHERE mcm_comprador = '16739752' ORDER BY Nombre, mcm_fecha

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
mcm_comprador	mcm_fecha	Nombre		Débito		Crédito			Saldo
XY001	30/08/2019	CUENTA DE CLIENTES	125.000.000				125.000.000
XY001	4/09/2019	CUENTA DE CLIENTES			2.952.068		122.047.932
XY001	4/09/2019	CUENTA DE CLIENTES			420.682			121.627.250
XY001	4/09/2019	CUENTA DE CLIENTES			5.070.904		116.556.346
XY001	4/09/2019	CUENTA DE CLIENTES			1.016.023		115.540.323
XY001	4/09/2019	CUENTA DE CLIENTES			676.234			114.864.089
XY001	4/09/2019	CUENTA DE CLIENTES			456.913			114.407.176
XY001	4/09/2019	CUENTA DE CLIENTES			8.986.714		105.420.462
XY001	4/09/2019	CUENTA DE CLIENTES			2.326.362		103.094.100
XY001	4/09/2019	CUENTA DE CLIENTES			2.757.085		100.337.015
XY001	4/09/2019	CUENTA DE CLIENTES			6.079.638		94.257.377
XY001	4/09/2019	CUENTA DE CLIENTES			731.302			93.526.075
XY001	4/09/2019	CUENTA DE CLIENTES			1.782.888		91.743.187
XY001	4/09/2019	CUENTA DE CLIENTES			1.155.498		90.587.689
XY001	4/09/2019	CUENTA DE CLIENTES			14.402.462		76.185.227
XY001	4/09/2019	CUENTA DE CLIENTES			617.014			75.568.213
XY001	4/09/2019	CUENTA DE CLIENTES			1.566.313		74.001.900
XY001	4/09/2019	CUENTA DE CLIENTES			4.640.008		69.361.892
XY001	4/09/2019	CUENTA DE CLIENTES			11.552.808		57.809.084
XY001	4/09/2019	CUENTA DE CLIENTES			5.562.808		52.246.276
XY001	4/09/2019	CUENTA DE CLIENTES			6.232.148		46.014.128
XY001	4/09/2019	CUENTA DE CLIENTES			1.854.731		44.159.397
XY001	6/09/2019	CUENTA DE CLIENTES			21.717.523		22.441.874
XY001	12/09/2019	CUENTA DE CLIENTES			3.066.862		19.375.012
XY001	12/09/2019	CUENTA DE CLIENTES			5.126.482		14.248.530
XY001	12/09/2019	CUENTA DE CLIENTES			7.737.073		6.511.457
XY001	12/09/2019	CUENTA DE CLIENTES			4.315.061		2.196.396
XY001	23/09/2019	CUENTA DE CLIENTES			1.018.909		1.177.487
XY001	23/09/2019	CUENTA DE CLIENTES			1.135.054		42.433
XY001	30/09/2019	CUENTA DE CLIENTES	1.870.847				1.913.280
XY001	30/09/2019	CUENTA DE CLIENTES	6.286.300				8.199.580
XY001	30/09/2019	CUENTA DE CLIENTES	5.611.144				13.810.724
XY001	30/09/2019	CUENTA DE CLIENTES	4.680.325				18.491.049
XY001	30/09/2019	CUENTA DE CLIENTES	11.653.191				30.144.240
XY001	30/09/2019	CUENTA DE CLIENTES	1.579.923				31.724.163
XY001	30/09/2019	CUENTA DE CLIENTES	622.375					32.346.538
XY001	30/09/2019	CUENTA DE CLIENTES	14.527.606				46.874.144
XY001	30/09/2019	CUENTA DE CLIENTES	1.165.538				48.039.682
XY001	30/09/2019	CUENTA DE CLIENTES	1.798.380				49.838.062
XY001	30/09/2019	CUENTA DE CLIENTES	737.656					50.575.718
XY001	30/09/2019	CUENTA DE CLIENTES	6.132.464				56.708.182
XY001	30/09/2019	CUENTA DE CLIENTES	2.346.576				59.054.758
XY001	30/09/2019	CUENTA DE CLIENTES	2.781.042				61.835.800
XY001	30/09/2019	CUENTA DE CLIENTES	9.064.800				70.900.600
XY001	30/09/2019	CUENTA DE CLIENTES	460.883					71.361.483
XY001	30/09/2019	CUENTA DE CLIENTES	68.211					72.043.593
XY001	30/09/2019	CUENTA DE CLIENTES	1.024.851				73.068.444
XY001	30/09/2019	CUENTA DE CLIENTES	5.114.965				78.183.409
XY001	30/09/2019	CUENTA DE CLIENTES	424.337					78.607.746
XY001	2/10/2019	CUENTA DE CLIENTES			982.432			77.625.314
XY001	2/10/2019	CUENTA DE CLIENTES			1.125.520		76.499.794
XY001	2/10/2019	CUENTA DE CLIENTES			9.216.829		67.282.965
XY001	2/10/2019	CUENTA DE CLIENTES			1.623.493		65.659.472
XY001	11/10/2019	CUENTA DE CLIENTES			33.033.365		32.626.107
XY001	16/10/2019	CUENTA DE CLIENTES	7.814.618				40.440.725
XY001	16/10/2019	CUENTA DE CLIENTES	5.177.862				45.618.587
XY001	17/10/2019	CUENTA DE CLIENTES			5.619.550		39.999.037
XY001	21/10/2019	CUENTA DE CLIENTES			3.602.404		36.396.633
XY001	21/10/2019	CUENTA DE CLIENTES			3.813.027		32.583.606
XY001	21/10/2019	CUENTA DE CLIENTES			4.066.307		28.517.299
XY001	21/10/2019	CUENTA DE CLIENTES			5.323.161		23.194.138
XY001	21/10/2019	CUENTA DE CLIENTES			1.895.753		21.298.385
XY001	21/10/2019	CUENTA DE CLIENTES			1.860.123		19.438.262
XY001	21/10/2019	CUENTA DE CLIENTES			8.646.473		10.791.789
XY001	21/10/2019	CUENTA DE CLIENTES			4.067.905		6.723.884
XY001	21/10/2019	CUENTA DE CLIENTES			4.214.272		2.509.612
XY001	29/10/2019	CUENTA DE CLIENTES	4.374.959				6.884.571
XY001	29/10/2019	CUENTA DE CLIENTES	2.999.265				9.883.836
XY001	29/10/2019	CUENTA DE CLIENTES			8.811.433		1.072.403
XY001	31/10/2019	CUENTA DE CLIENTES			8.527.345		-7.454.942
XY001	6/11/2019	CUENTA DE CLIENTES	3.116.738				-4.338.204
XY001	13/11/2019	CUENTA DE CLIENTES	5.667.539				1.329.335
XY001	14/11/2019	CUENTA DE CLIENTES	22.153.999				23.483.334
XY001	14/11/2019	CUENTA DE CLIENTES			7.711.878		15.771.456
XY001	14/11/2019	CUENTA DE CLIENTES			11.394.686		4.376.770
XY001	30/11/2019	CUENTA DE CLIENTES			2			-2
XY001	16/12/2019	CUENTA DE CLIENTES			4.376.770		0
XY001	9/01/2020	CUENTA DE CLIENTES	11.575.396				11.575.396
XY001	9/01/2020	CUENTA DE CLIENTES	7.834.181				19.409.577
XY001	9/01/2020	CUENTA DE CLIENTES	4.415.126				23.824.703
XY001	9/01/2020	CUENTA DE CLIENTES	1.671.327				25.496.030
XY001	9/01/2020	CUENTA DE CLIENTES	9.488.390				34.984.420
XY001	9/01/2020	CUENTA DE CLIENTES	1.158.681				36.143.101
XY001	9/01/2020	CUENTA DE CLIENTES	1.011.378				37.154.479
XY001	10/01/2020	CUENTA DE CLIENTES	1.170.984				38.325.463
XY001	10/01/2020	CUENTA DE CLIENTES	1.051.163				39.376.626
XY001	10/01/2020	CUENTA DE CLIENTES	4.313.010				43.689.636
XY001	10/01/2020	CUENTA DE CLIENTES	4.163.214				47.852.850
XY001	10/01/2020	CUENTA DE CLIENTES	1.903.704				49.756.554
XY001	10/01/2020	CUENTA DE CLIENTES	1.940.169				51.696.723
XY001	10/01/2020	CUENTA DE CLIENTES	5.447.880				57.144.603
XY001	10/01/2020	CUENTA DE CLIENTES	4.161.578				61.306.181
XY001	10/01/2020	CUENTA DE CLIENTES	3.902.364				65.208.545
XY001	10/01/2020	CUENTA DE CLIENTES	3.686.806				68.895.351
XY001	15/01/2020	CUENTA DE CLIENTES			2.523.474		66.371.877
XY001	15/01/2020	CUENTA DE CLIENTES			6.045.337		60.326.540
XY001	15/01/2020	CUENTA DE CLIENTES			1.602.802		58.723.738
XY001	22/01/2020	CUENTA DE CLIENTES	8.879.469				67.603.207
XY001	27/01/2020	CUENTA DE CLIENTES			32.181.575		35.421.632
XY001	31/01/2020	CUENTA DE CLIENTES			6.089.729		29.331.903
XY001	31/01/2020	CUENTA DE CLIENTES			3.962.632		25.369.271
XY001	31/01/2020	CUENTA DE CLIENTES			8.323.785		17.045.486
XY001	31/01/2020	CUENTA DE CLIENTES			14.308.458		2.737.028
XY001	5/02/2020	CUENTA DE CLIENTES	34.186.665				36.923.693
XY001	6/02/2020	CUENTA DE CLIENTES			28.065.542		8.858.151
XY001	7/02/2020	CUENTA DE CLIENTES	9.074.115				17.932.266
XY001	17/02/2020	CUENTA DE CLIENTES			5.000.000		12.932.266
XY001	17/02/2020	CUENTA DE CLIENTES	8.802.015				21.734.281
XY001	20/02/2020	CUENTA DE CLIENTES			12.901.406		8.832.875
XY001	28/02/2020	CUENTA DE CLIENTES			8.832.875		0
XY001	7/04/2020	CUENTA DE CLIENTES	32.847.295				32.847.293
XY001	21/04/2020	CUENTA DE CLIENTES	1.648.664				34.495.957
XY001	21/04/2020	CUENTA DE CLIENTES	2.595.681				37.091.638
XY001	21/04/2020	CUENTA DE CLIENTES	6.218.319				43.309.957
XY001	30/04/2020	CUENTA DE CLIENTES			39.360.167		3.949.790
XY001	6/05/2020	CUENTA DE CLIENTES	4.078.684				8.028.474
XY001	6/05/2020	CUENTA DE CLIENTES	6.268.076				14.296.550
XY001	12/05/2020	CUENTA DE CLIENTES	28.880.677				43.177.227
XY001	28/05/2020	CUENTA DE CLIENTES	14.825.251				58.002.478
XY001	28/05/2020	CUENTA DE CLIENTES	8.624.424				66.626.902
XY001	29/05/2020	CUENTA DE CLIENTES			22.760.090		43.866.812
XY001	3/06/2020	CUENTA DE CLIENTES	39.767.942				83.634.754
XY001	9/06/2020	CUENTA DE CLIENTES			2.536.139		81.098.615
XY001	9/06/2020	CUENTA DE CLIENTES			2.531.176		78.567.439
XY001	9/06/2020	CUENTA DE CLIENTES			1.985.236		76.582.203
XY001	9/06/2020	CUENTA DE CLIENTES			3.285.566		73.296.637
XY001	19/06/2020	CUENTA DE CLIENTES			40.529.919		32.766.718
XY001	23/06/2020	CUENTA DE CLIENTES	13.375.192				40.813.022
XY001	24/06/2020	CUENTA DE CLIENTES	3.311.157				36.077.875
XY001	24/06/2020	CUENTA DE CLIENTES	2.000.699				38.078.574
XY001	24/06/2020	CUENTA DE CLIENTES	2.550.891				40.629.465
XY001	24/06/2020	CUENTA DE CLIENTES	2.555.893				43.185.358
XY001	25/06/2020	CUENTA DE CLIENTES			2.935.158		40.250.200
XY001	25/06/2020	CUENTA DE CLIENTES			3.285.223		36.964.977
XY001	25/06/2020	CUENTA DE CLIENTES			9.527.147		27.437.830
XY001	1/07/2020	CUENTA DE CLIENTES			7.850.070		32.962.952
XY001	1/07/2020	CUENTA DE CLIENTES			702.498			32.260.454
XY001	1/07/2020	CUENTA DE CLIENTES			2.345.837		29.914.617
XY001	1/07/2020	CUENTA DE CLIENTES			7.624.906		22.289.711
XY001	1/07/2020	CUENTA DE CLIENTES			1.918.267		20.371.444
XY001	15/07/2020	CUENTA DE CLIENTES	23.057.286				43.428.730
XY001	22/07/2020	CUENTA DE CLIENTES	40.867.215				84.295.945
XY001	24/07/2020	CUENTA DE CLIENTES			6.359.878		77.936.067
XY001	24/07/2020	CUENTA DE CLIENTES			19.481.560		58.454.507
XY001	4/08/2020	CUENTA DE CLIENTES			11.444.711		47.009.796
XY001	4/08/2020	CUENTA DE CLIENTES			7.358.604		39.651.192
XY001	4/08/2020	CUENTA DE CLIENTES			4.150.843		35.500.349
XY001	4/08/2020	CUENTA DE CLIENTES			4.687.994		30.812.355
XY001	14/08/2020	CUENTA DE CLIENTES			30.812.355		0
XY001	3/09/2020	CUENTA DE CLIENTES	713.537					713.537
XY001	3/09/2020	CUENTA DE CLIENTES	1.948.412				2.661.949
XY001	3/09/2020	CUENTA DE CLIENTES	7.973.431				10.635.380
XY001	3/09/2020	CUENTA DE CLIENTES	2.382.701				13.018.081
XY001	3/09/2020	CUENTA DE CLIENTES	7.744.729				20.762.810
XY001	7/09/2020	CUENTA DE CLIENTES			16.000.000		4.762.810
XY001	15/09/2020	CUENTA DE CLIENTES	9.357.307				14.120.117
XY001	16/09/2020	CUENTA DE CLIENTES	9.723.783				23.843.900
XY001	16/09/2020	CUENTA DE CLIENTES	3.353.028				27.196.928
XY001	16/09/2020	CUENTA DE CLIENTES	2.995.738				30.192.666
XY001	17/09/2020	CUENTA DE CLIENTES			14.817.257		15.375.409
XY001	17/09/2020	CUENTA DE CLIENTES			7.960.049		7.415.360
XY001	21/09/2020	CUENTA DE CLIENTES	31.045.225				38.460.585
XY001	22/09/2020	CUENTA DE CLIENTES	19.744.575				58.205.160
XY001	23/09/2020	CUENTA DE CLIENTES			27.347.212		30.857.948
XY001	23/09/2020	CUENTA DE CLIENTES			2.701.789		28.156.159
XY001	24/09/2020	CUENTA DE CLIENTES			26.000.000		2.156.159
XY001	1/10/2020	CUENTA DE CLIENTES	4.201.298				6.357.457
XY001	1/10/2020	CUENTA DE CLIENTES	7.448.051				13.805.508
XY001	1/10/2020	CUENTA DE CLIENTES	11.583.827				25.389.335
XY001	7/10/2020	CUENTA DE CLIENTES	2.714.759				28.104.094
XY001	7/10/2020	CUENTA DE CLIENTES	27.478.498				55.582.592

CON FECHA (Aquí d

1
2
SELECT mcm_comprador, mcm_fecha, Trim(com_razonsocial + ' ' + com_apellido1 + ' ' + com_apellido2 + ' ' + com_nombre1 + ' ' + com_nombre2) AS Nombre, format(mcm_debito, '#,##') AS Débito,
FORMAT(mcm_credito, '#,##') AS Crédito, Saldo = SUM(mcm_debito - mcm_credito) OVER(PARTITION BY mcm_comprador ORDER BY mcm_comprador, mcm_id ROWS UNBOUNDED PRECEDING) FROM movcomprador INNER JOIN comprador ON com_id = mcm_comprador WHERE mcm_comprador = '16739752' AND mcm_fecha BETWEEN '2020-06-01' AND '2020-06-25' ORDER BY Nombre, mcm_fecha

como pueden ver empieza a mostrar negativos y deberían ser positivos ya que el último valor antes de esta consulta con fechas es: 83.634.754

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
mcm_comprador	mcm_fecha	Nombre			Débito		Crédito			Saldo
XY001	3/06/2020	        CUENTA DE CLIENTES	39.767.942				39.767.942
XY001	9/06/2020	        CUENTA DE CLIENTES			2.536.139		37.231.803
XY001	9/06/2020	        CUENTA DE CLIENTES			2.531.176		34.700.627
XY001	9/06/2020	        CUENTA DE CLIENTES			1.985.236		32.715.391
XY001	9/06/2020	        CUENTA DE CLIENTES			3.285.566		29.429.825
XY001	19/06/2020	CUENTA DE CLIENTES				40.529.919		-11.100.094
XY001	23/06/2020	CUENTA DE CLIENTES		13.375.192				-3.053.790
XY001	24/06/2020	CUENTA DE CLIENTES		3.311.157				-7.788.937
XY001	24/06/2020	CUENTA DE CLIENTES		2.000.699				-5.788.238
XY001	24/06/2020	CUENTA DE CLIENTES		2.550.891				-3.237.347
XY001	24/06/2020	CUENTA DE CLIENTES		2.555.893				-681.454
XY001	25/06/2020	CUENTA DE CLIENTES				2.935.158		-3.616.612
XY001	25/06/2020	CUENTA DE CLIENTES				3.285.223		-6.901.835
XY001	25/06/2020	CUENTA DE CLIENTES				9.527.147		-16.428.982
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de vega
Val: 102
Ha aumentado su posición en 3 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

Movimiento con saldo entre fechas

Publicado por vega (43 intervenciones) el 21/10/2020 12:25:07
creo que te falta considerar el saldo del dia anterior a la fecha, ¿no?
Es necesario recalcular todo por cliente si no tienes el saldo de antemano. Luego ya puedes hacer la consulta de fecha sobre el resultado.

1
2
3
4
5
6
select * from (
tu consulta entera con filtro so bre cliente pero sin filtro sobre fecha
--WHERE mcm_comprador = '16739752'
)
where
mcm_fecha BETWEEN '2020-06-01' AND '2020-06-25' ORDER BY Nombre, mcm_fecha
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar