SoloCodigo
Bases de Datos => MySQL => Mensaje iniciado por: gokufast en Jueves 6 de Septiembre de 2007, 20:31
-
tengo el siguiente query:
select vol_corr, vol_cod, vol_fecha,tipo_mov,
sum(ifnull(vol_depus,0)) as dep,
sum(ifnull(vol_retus,0)) as ret,
SUM(ifnull(vol_depus,0)-ifnull(vol_retus,0)) as saldo
from bono
where vol_cod=90
GROUP BY vol_corr
y lo que sale es mas o menos asi
vol_corr, vol_cod, vol_fecha, tipo_mov, dep, ret, saldo
30 90 31/10/2002 DEP 40,49 0,00 40,49
31 90 30/11/2002 DEP 40,27 0,00 40,27
32 90 31/12/2002 DEP 40,11 0,00 40,11
33 90 31/12/2002 RET 0,00 99,59 -99,59
34 90 31/01/2003 DEP 39,74 0,00 39,74
35 90 28/02/2003 DEP 39,58 0,00 39,58
36 90 31/03/2003 DEP 39,37 0,00 39,37
donde dep es los depositos, ret son los retiros y saldo es la resta de ambos
mi problema va por que me sume los saldos de cada fecha, ej
31/10/2002 DEP 40,49 0,00 40,49
30/11/2002 DEP 40,27 0,00 80,76
31/12/2002 DEP 40,11 0,00 120,87
31/12/2002 RET 0,00 99,59 21,28
31/01/2003 DEP 39,74 0,00 39,74
28/02/2003 DEP 39,58 0,00 100,6
osea que el saldo se vaya incrementando o decrementando, dependiendo de la fecha
-
Esto me parece una chanchada :P ...
...pero funciona:
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]select[/color] vol_corr AS codigo, vol_cod, vol_fecha,tipo_mov,
sum(ifnull(vol_depus,0)) as dep,
sum(ifnull(vol_retus,0)) as ret,
([color=blue;font-weight]select[/color] SUM(ifnull(vol_depus,0)-ifnull(vol_retus,0)) from bono where vol_corr<=codigo)as saldo
from bono where vol_cod=90
GROUP BY vol_corr; <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->
-
:P vale, luego lo puedo optimizar mejor, hago la prueba y les comento como me fue
-
:P vale, luego lo puedo optimizar mejor, hago la prueba y les comento como me fue
Seguro, esa es la idea :comp:
-
No me quedo claro que querias peguntar ;)
-
lo que quiero es que cada fecha el saldo vaya incrementandose con los depositos
vol_fecha, tipo_mov, dep, ret, saldo
31/10/2002 DEP 40,49 0,00 40,49
30/11/2002 DEP 40,27 0,00 80,76
31/12/2002 DEP 40,11 0,00 120,87
o si hay retiros vaya bajando el saldo
(saldo anterior = 120,87)
31/12/2002 RET 0,00 99,59 21,28
31/01/2003 RET 0,00 10,00 11,28
28/02/2003 RET 0,00 10,00 01,28
-
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]select[/color] vol_corr AS codigo, vol_cod, vol_fecha,tipo_mov,
sum(ifnull(vol_depus,0)) as dep,
sum(ifnull(vol_retus,0)) as ret,
([color=blue;font-weight]select[/color] SUM(ifnull(vol_depus,0)-ifnull(vol_retus,0)) from bono where vol_corr<=codigo)as saldo
from bono where vol_cod=90
GROUP BY vol_corr; <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->
sale genial!!!, solo con una salvedad, que cuando el vol_corr no es seguido para el vol_cod=90
ej.
vol_corr, vol_cod
1, 90
2, 90
3, 90
4, 75
5, 75
6, 75
7, 75
8, 75
9, 75
10, 90
11, 210
12, 210
13, 90
el saldo suma los que estan entre el 3 y el 10 y entre el 10 y el 50
la ayuda me esta ayudando muchisimo, gracias
-
con toda la ayuda y haciendo pruebas logre mi cometido que se refleja en este query (aunque aun esta en borrador)
SELECT
vol_corr AS codigo,
vol_cod AS socio,
vol_fecha AS fecha,
tipo_mov AS mov,
ifnull(vol_depus, 0) AS dep,
ifnull(vol_retus, 0) AS ret,
(SELECT SUM(ifnull(vol_depus, 0) - ifnull(vol_retus, 0)) AS FIELD_1
FROM bono
WHERE vol_corr <= codigo AND vol_cod = 90) AS saldo
FROM
bono
WHERE
vol_cod = 90
GROUP BY
codigo
ahora necesito ayuda para 2 cosas :P , 1 para optimizar el query y sobre todo quiero que pueda poner el uso de fechas
- Que pueda poner un rango de fechas ej. entre el 31/01/2007 y el 31/07/2007
ó
- que digamos me saque todos los registros desde enero al ultimo que tenga (por mes)
y...
agradezo toda la ayuda que me brindaron
salu2