** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Se me resiste una consulta
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Se me resiste una consulta

 Responder Responder
Autor
Mensaje
jbtwist Ver desplegable
Nuevo
Nuevo


Unido: 09/Agosto/2018
Localización: Jaén
Estado: Sin conexión
Puntos: 5
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita jbtwist Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Se me resiste una consulta
    Enviado: 09/Agosto/2018 a las 14:19
Buenas, os estoy posteando en el foro porque la verdad que ando un poco desesperado ya que no encuentro lo que necesito por ninguna parte, os pongo en situación:

Tengo una BBDD en Access que lleva los registros de 6 almacenes. Mi jefe me ha pedido realizar un informe que en principio creía que con una consulta SQL (muy larga pero 1 al fin y al cabo) iba a poder realizar la tarea, pero no.

Las tablas son las siguientes (pondré solo los campos que nos interesan):

- Materiales:
PK Material

- PDI:
PK Lote

- Autoinventario:
PK Mat
PK PDI
Total

- Existencias:
PK Mat
PK PDI
Existencias

Stock:
PK Mat
PK PDI
Stock

Mat Solicitado:
PK Mat
PDI1 (La cantidad que pide ese almacén de ese material en concreto)
PDI2
PDI3
PDI4
PDI5
PDI6


Necesito sacar los campos Total, Existencias, Stock, y PDIX para cada almacén, hasta aquí es facil.

Mi problema viene cuando los códigos de material existentes en las tablas Autoinventario, Existencias, Stock y Mat Solicitado no coinciden al 100%, de modo que cuando hago la consulta restringiendo que el código de material exista no me aparecen todos los códigos de material que hay en esas tablas.

Mi jefe quiere que si por ejemplo, el código de material '110600' no aparece en la tabla autoinventario, pero sí en la de Mat Solicitado, se cree una línea con el código '110600' y ponga 0 en el campo total.

Lo siento si no me he expresado muy bien, no estoy seguro de si se entiende lo que necesito
Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 579
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita pitxiku Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 09/Agosto/2018 a las 17:44
Si entiendo lo que necesitas, puedes modificar la relación entre las tablas dentro de la consulta: devolver todos los registros de la tabla materiales, y los relacionados de las distintas tablas. Después, si se puede dar el caso que haya materiales que no tengan registros relacionados en ninguna tabla, puedes suprimirlos en la consulta mediante un criterio: que x campos de cada tabla estén nulos.
Arriba
jbtwist Ver desplegable
Nuevo
Nuevo


Unido: 09/Agosto/2018
Localización: Jaén
Estado: Sin conexión
Puntos: 5
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita jbtwist Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 10/Agosto/2018 a las 09:17
¿y como hago eso? soy bastante novato con access aunque tengo ciertos conocimientos de SQL, nunca he hecho algo similar
Arriba
jbtwist Ver desplegable
Nuevo
Nuevo


Unido: 09/Agosto/2018
Localización: Jaén
Estado: Sin conexión
Puntos: 5
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita jbtwist Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 10/Agosto/2018 a las 10:23
siento el dobleposteo pero he estado investigando un poco y pienso que puedo hacerlo combinando un inner join con 3 full joins, pero... access no incluye la operación full join, así que me va a tocar por lo visto hacer 3 consultas con right, inner y left join y unirlas, o sea 9 consultas extra.....

gracias microsoft por hacerme la vida más sencilla xD
Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 579
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita pitxiku Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 10/Agosto/2018 a las 17:32
En el siguiente enlace, Raipon hace un Full Join en Access:

- http://sqlraipon.blogspot.com/2008/07/full-join-en-access.html

Pero no te esperes nada raro, es simplemente 2 consultas LEFT JOIN unidas con un UNION.

En cuanto a que Microsoft no incluya el FULL JOIN en Access, supongo que intentan que sea algo peor que SQL Server, para que la gente tienda al final a pensar si migrar o no.
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: España
Estado: en línea
Puntos: 10260
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 10/Agosto/2018 a las 17:38
Podrías hacer una primera subconsulta en la que cojas todos los códigos y después relacionar esta con cada de las demás para obtener los datos deseados.
Perdón por lo críptico pero con el móvil no doy para más


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable