Access - consulta COMPLICADA

 
Vista:

consulta COMPLICADA

Publicado por Hernan (17 intervenciones) el 09/09/2004 15:07:16
Gente,
Tengo un problemita que a lo mejor me pueden ayudar a resolver (por favooor, me estoy volviendo looco) el tema es asi tengo que calcular un precio promedio que sale de dividir cantidades por pesos, hasta aca es simple tengo la consulta con el total de cantidades en el mes y el total de $ del mes y arme un campo que divide estos dos campos, asi tengo en una consulta total$ totalcant y precioprom, por mes y articulo.

Despues de esta introduccion, les cuento el problema hay mese que no tengo los datos de total$ y totalcant, por lo tanto no tengo precio promedio ese mes, lo que tengo que hacer en esos casos es poner el precio promedio del mes anterior.

Hasta donde llege es hacer una consulta con todos los meses y articulos para hacer un left join de esta manera me aseguro tener todos los meses en la tabla, cuando puedo armar el precio esta el dato si no hay un nulo. Arme un campo donde pongo SiInm( [preciopromedio]es nulo, un select , [preciopromedio]). Pero esto no me funciona porque no puedo encontrar forma de que el select este me traiga el dato que necesito (promedio del mes anterior, que puede ser que el mes anterior tampoco exista entonces deberia ser el ultimo promedio que arme).

¿Me explique mas o menos??
¿A alguien se le ocurre algo?

MUCHAS GRACIAS !!

Saludos
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 Alejandro

consulta COMPLICADA

Publicado por Alejandro (4142 intervenciones) el 10/05/2023 00:56:41
Entiendo que deseas calcular un precio promedio mensual en base a cantidades y pesos, pero en algunos meses no tienes los datos necesarios y deseas utilizar el precio promedio del mes anterior en su lugar. Aquí hay una posible solución para abordar este problema en Access:

1. Crea una consulta que obtenga los datos necesarios para calcular el precio promedio mensual, incluyendo el mes, el artículo, el total de cantidades y el total de pesos.

2. Añade un campo adicional a esta consulta que calcule el precio promedio mensual utilizando la expresión adecuada, teniendo en cuenta los casos en los que no haya datos para un mes específico.

3. Crea otra consulta que utilice una función de dominio para obtener el precio promedio del mes anterior para cada mes y artículo. Puedes utilizar la función `DLookup` para buscar el precio promedio en la tabla generada por la primera consulta.

Aquí tienes un ejemplo de cómo podrías construir la segunda consulta:

1
2
3
4
5
6
SELECT
    tabla1.mes,
    tabla1.articulo,
    IIf(IsNull(tabla1.precioprom), DLookup("precioprom", "tabla1", "mes < #" & Format(tabla1.mes, "yyyy\/mm\/dd") & "# AND articulo = '" & tabla1.articulo & "'", "mes DESC"), tabla1.precioprom) AS preciopromedio
FROM
    tabla1;

Asegúrate de reemplazar "tabla1" con el nombre de tu primera consulta.

Esta segunda consulta utilizará la función `DLookup` para buscar el precio promedio del mes anterior para cada mes y artículo. Si el precio promedio del mes actual es nulo, buscará en los meses anteriores hasta encontrar un valor no nulo. Si no se encuentra ningún valor no nulo, se mantendrá el nulo.

Espero que esto te ayude a resolver tu problema.
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