Access - Mostrar en cero "0" Valores que no estén en las consultas

 
Vista:
sin imagen de perfil
Val: 19
Ha aumentado su posición en 136 puestos en Access (en relación al último mes)
Gráfica de Access

Mostrar en cero "0" Valores que no estén en las consultas

Publicado por Hernan Andres (11 intervenciones) el 02/04/2020 23:13:55
Hola a todos, Solicito de su ayuda por favor.

Estoy generando una consulta de las siguiente tabla y consultas

1

El resultado es el siguiente:

2

El problema es que solo muestra los "IdInventario" que tienen datos y están en las 3 consultas, necesito que si el "IdInventario"
solo esta en una de las consultas de igual manera muestre la cantidad, y en los demás campos de ese "IdInventario" devuelva "0", Asi:

3

¿O que otra opción puedo utilizar?

Muchas gracias por tu respuesta.
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 miguel
Val: 501
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Mostrar en cero "0" Valores que no estén en las consultas

Publicado por miguel (306 intervenciones) el 03/04/2020 01:34:02
En tu explicacion falta algo porque por lo menos yo no tengo claro de donde salen las consultas porque en la tabla no existe el campo cantidad ni como relacionas las consultas con la tabla.
Sin saber nada de eso lo que veo es que es un problema de relaciones si me envias un ejemplo de la tabla y de las consultas quizas se te pueda aclarar mejor el tema. Tengo aplicaciones que utilizan varias consultas a la vez y en las que no hay datos sale el campo pero sin valor pero son consultas relacionadas entre si y entre una tabla, por ejemplo, puedo sacar los distintos precios que me dan distintos proveedores para un mismo articulo, en la consulta sale el articulo y los precios de cada proveedor y el que no me suministra ese articulo sale en blanco pero como te he dicho para poder ayudarte hay que al menos ver como has planteado las consultas.
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
Imágen de perfil de miguel
Val: 501
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Mostrar en cero "0" Valores que no estén en las consultas

Publicado por miguel (306 intervenciones) el 03/04/2020 02:02:37
como te he dicho antes el problema es la relacion, te adjunto el ejemplo de la otra consulta donde me has preguntado y hay veras que cuando no hay datos sale el campo en blanco, tambien puedes modificar la consulta y utilizar la funcion NZ() para que ponga 0 en vez de blanco.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 19
Ha aumentado su posición en 136 puestos en Access (en relación al último mes)
Gráfica de Access

Mostrar en cero "0" Valores que no estén en las consultas

Publicado por Hernan Andres (11 intervenciones) el 03/04/2020 03:11:29
Perfecto, eso es lo que estaba buscando, este es el código que yo te había enviado en la consulta.
1
2
SELECT costelaboral.producto, costelaboral.descripcion, costelaboral.costedepersonal, [costecomponentes Consulta resumen]![SumaDeSumaDeprecio] AS costecomp, [costefabricacion Consulta resumen]![SumaDeSuma De precio] AS costefbr
FROM (costelaboral INNER JOIN [costecomponentes Consulta resumen] ON costelaboral.producto = [costecomponentes Consulta resumen].producto) INNER JOIN [costefabricacion Consulta resumen] ON costelaboral.producto = [costefabricacion Consulta resumen].producto;

y me respondes con este,
1
2
SELECT costelaboral.producto, costelaboral.descripcion, costelaboral.costedepersonal, [costecomponentes Consulta resumen]![SumaDeSumaDeprecio] AS costecomp, [costefabricacion Consulta resumen]![SumaDeSuma De precio] AS costefbr
FROM (costelaboral LEFT JOIN [costecomponentes Consulta resumen] ON costelaboral.producto = [costecomponentes Consulta resumen].producto) LEFT JOIN [costefabricacion Consulta resumen] ON costelaboral.producto = [costefabricacion Consulta resumen].producto;

Veo que básicamente cambias INNER JOIN por LEFT JOIN es correcto?
La función Nz(), se utiliza en esta parte?
1
Nz([costecomponentes Consulta resumen]![SumaDeSumaDeprecio]) AS costecomp

Muchas gracias por la ayuda.
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
Imágen de perfil de miguel
Val: 501
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Mostrar en cero "0" Valores que no estén en las consultas

Publicado por miguel (306 intervenciones) el 03/04/2020 13:29:27
me alegro que te haya servido, con LEFT JOIN lo que se hace es seleccionar que salgan los datos aunque no existan, hay que tener en cuenta que siempre tiene que haber una tabla o una consulta que sera la original, es decir, sobre la que se hara la comparacion y que debe de tener todos los valores.

si, NZ() se usa en la consulta:

SELECT costelaboral.producto, costelaboral.descripcion, costelaboral.costedepersonal, NZ([costecomponentes Consulta resumen]![SumaDeSumaDeprecio],0) AS costecomp, NZ([costefabricacion Consulta resumen]![SumaDeSuma De precio],0) AS costefbr
FROM (costelaboral LEFT JOIN [costecomponentes Consulta resumen] ON costelaboral.producto = [costecomponentes Consulta resumen].producto) LEFT JOIN [costefabricacion Consulta resumen] ON costelaboral.producto = [costefabricacion Consulta resumen].producto;

esta consulta es la misma que la que te he enviado pero con NZ() con lo cual los valores que aparecian en blanco ahora aparecen con 0
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 19
Ha aumentado su posición en 136 puestos en Access (en relación al último mes)
Gráfica de Access

Mostrar en cero "0" Valores que no estén en las consultas

Publicado por Hernan Andres (11 intervenciones) el 03/04/2020 14:19:02
Muchas gracias Miguel, era exactamente lo que buscaba.
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
sin imagen de perfil
Val: 28
Ha disminuido su posición en 5 puestos en Access (en relación al último mes)
Gráfica de Access

Mostrar en cero "0" Valores que no estén en las consultas

Publicado por MARIO (9 intervenciones) el 06/04/2020 17:46:12
La Función Nz([Campo]) solucionada la falta de datos que en algunas consultas no tienen información, pero solamente debes tener en cuenta a la hora de sacar un reporte o en un formulario a veces aparece con mas de 3 decimales.
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

Mostrar en cero "0" Valores que no estén en las consultas

Publicado por Anonimo (3316 intervenciones) el 07/04/2020 23:18:41
Si se utiliza de forma correcta esa función, se evita el problema.

Nz([Un-Dato]) ==> incorrecto, devolverá lo que Access crea que debería devolver (o por casualidad un cero)

Nz([Un-Dato], 0) ==> correcto, se le indica que devuelva lo que deseamos (cero)

Pero puede devolver lo que queramos:
Nz([Un-Dato], 123) ===> devuelve 'Un-Dato' y en el caso de ser un null devuelve 123

Nz([Un-Dato], "Dato erróneo") ===> devuelve 'Un-Dato' y en el caso de ser un null devuelve 'Dato erróneo'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Mostrar en cero "0" Valores que no estén en las consultas

Publicado por Esteban (4 intervenciones) el 27/04/2022 00:41:14
Buenas tarde

tengo la misma situacion que le compañero tengo una consulta donde necesito que e muestre el cero en la primera consulta si muestra un valor pues hay un registro como les muestro en la imagen 1 pero en la imagen dos me sale en blanco porque no encuentra nada en la consulta pero necesito que me muestre un cero


le adjunto la estructura de la consulta

SELECT Q_BD_BX_ANO_CONTAR.AÑO, Q_BD_BX_ANO_CONTAR.RESULTADO_PRINCIPAL, Sum(Q_BD_BX_ANO_CONTAR.CuentaDeFECHA_DX) AS SumaDeCuentaDeFECHA_DX
FROM Q_BD_BX_ANO_CONTAR
GROUP BY Q_BD_BX_ANO_CONTAR.AÑO, Q_BD_BX_ANO_CONTAR.RESULTADO_PRINCIPAL
HAVING (((Q_BD_BX_ANO_CONTAR.RESULTADO_PRINCIPAL)=4));

CA
0
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

Mostrar en cero "0" Valores que no estén en las consultas

Publicado por Anonimo (3316 intervenciones) el 27/04/2022 09:11:45
La opción mas sencilla (Nz)

Lo que hay ahora:
1
..... Sum(Q_BD_BX_ANO_CONTAR.CuentaDeFECHA_DX) AS SumaDeCuentaDeFECHA_DX ......

La alterntiva:
1
.... Nz(Sum(Q_BD_BX_ANO_CONTAR.CuentaDeFECHA_DX) ,0) AS SumaDeCuentaDeFECHA_DX ....


Otra opcion mas completa:
1
.... IIF(IsNumeric (Sum(Q_BD_BX_ANO_CONTAR.CuentaDeFECHA_DX), Sum(Q_BD_BX_ANO_CONTAR.CuentaDeFECHA_DX) , 0) AS SumaDeCuentaDeFECHA_DX ....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar