Acumulado de importe con dos criterios en consulta ACCESS

Objetivo: Qué el acumulado sea en base a la fecha (cronologicamente) y de ser posible al Tpoliza

Tengo en SQL lo siguiente:

SELECT tblPoliza.TPoliza,tblPoliza.FechaPoliza, tblPoliza.SubTotal, Format(DSum("tblPoliza.[SubTotal]","tblPoliza","tblPoliza.[FechaPoliza] <=#" & [tblPoliza].[FechaPoliza] & "#"),"$#,##0.00") AS Acumulado

FROM tblPoliza;

1 respuesta

Respuesta
1

Para ponerle dos criterios al DSum() sería:

Format(DSum("tblPoliza.[SubTotal]","tblPoliza","tblPoliza.[FechaPoliza] <=#" & [tblPoliza].[FechaPoliza] & "# AND TPoliza='" & tblPoliza.[TPoliza] & "'"),"$#,##0.00")

Ahora bien, no te va a hacer el acumulado para cada movimiento (que no sé si es lo que buscas), pues si una misma fecha y tipo póliza tiene dos o más registros, el acumulado será el mimo en todos ellos.

Si quieres que te acumule registro a registro, necesitas un campo por el que puedas ordenar cada registro individualmente. Mira este ejemplo si es lo que buscas: http://siliconproject.com.ar/neckkito/index.php/ejemplos-explicados/consultas/87-ejemplos-explicados/ejemplos-de-consultas/281-contador-tipo-saldo-2 

Hola Sveinbjorn El Rojo buenos días desde Guerrero, México. Agradezco tu tiempo para brindarme tu apoyo. Te comento, he revisado el archivo de link que me proporcionaste y efectivamente es lo que busco que me acumule registro por registro pero por fecha.

SELECT tblPoliza.TPoliza, tblPoliza.FechaPoliza, Sum(tblPoliza.SubTotal) AS SumaDeSubTotal, CCur(DSum("tblPoliza.[SubTotal]","tblPoliza","tblPoliza.[FechaPoliza] <=#" & [tblPoliza].[FechaPoliza] & "# AND TPoliza='" & [tblPoliza].[TPoliza] & "'")) AS Saldo
FROM tblPoliza
GROUP BY tblPoliza.TPoliza, tblPoliza.FechaPoliza, CCur(DSum("tblPoliza.[SubTotal]","tblPoliza","tblPoliza.[FechaPoliza] <=#" & [tblPoliza].[FechaPoliza] & "# AND TPoliza='" & [tblPoliza].[TPoliza] & "'"))
HAVING (((tblPoliza.TPoliza)="Eg"))
ORDER BY tblPoliza.FechaPoliza;

SELECT tblPoliza.TPoliza, tblPoliza.FechaPoliza, Sum(tblPoliza.SubTotal) AS SumaDeSubTotal, CCur(DSum("tblPoliza.[SubTotal]","tblPoliza","tblPoliza.[FechaPoliza] <=#" & Format([tblPoliza].[FechaPoliza],"mm/dd/yyyy") & "# AND TPoliza='" & [tblPoliza].[TPoliza] & "'")) AS Saldo
FROM tblPoliza
GROUP BY tblPoliza.TPoliza, tblPoliza.FechaPoliza, CCur(DSum("tblPoliza.[SubTotal]","tblPoliza","tblPoliza.[FechaPoliza] <=#" & Format([tblPoliza].[FechaPoliza],"mm/dd/yyyy") & "# AND TPoliza='" & [tblPoliza].[TPoliza] & "'"))
HAVING (((tblPoliza.TPoliza)="Eg"))
ORDER BY tblPoliza.FechaPoliza;

El truco está en darle formato americano a la fecha. Acabo de probar con los mismos datos, y logro el objetivo.

Un saludo


Sveinbjorn El Rojo muchas gracias por tu valioso apoyo, el problema ya quedo resuelto.

Saludos desde Guerrero, México.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas