SQ02. Conectar varias tablas

Hola a todos,

¿Podéis ayudarme con este problema que llevo días intentando resolver (no llego a más dándole la plasta a Copilot, jejeje)?

Quiero obtener un listado de los elementos de stock que tengo en un almacén.
Para ello, estoy sacando información de la tabla MARD, y seleccionando el Almacén (campo LGORT), el Centro (campo WERKS) y fijando que el stock en libre utilización sea >0.

Esto funciona (en principio).

Aparte, quiero que me dé información de las propiedades de los materiales. Para ello, he creado un campo adicional que busca en la tabla MCHB y trae, PARA AQUELLOS MATERIALES SUJETOS A LOTE, el número de lote (creo que era el campo CHARG).

Esto también funciona.

Sin embargo, quiero traer, PARA AQUELLOS MATERIALES QUE SON EQUIPOS, su número de equipo…

Y aquí estoy bloqueado.


Necesito crear un campo adicional que haga lo siguiente:
Como la tabla MARD tiene valores para los campos MATNR, WERKS y LGORT…

MATNR está también en la tabla EQUI, donde se encuentra el campo EQUNR (que es el que quiero traer).
Pero EQUI no tiene relleno su campo de almacén, así que hay que fijarlo por otro lado.

WERKS y LGORT están también en la tabla EQBS (aunque allí se llaman B_WERK y B_LAGER), donde se encuentra el campo EQUNR (también).
Pero EQBS no tiene campo de MATNR.

EQUI y EQBS deben tener conexión uno a uno a través del campo EQUNR, así que… en mi cabeza todo tiene sentido. Pero no sé cómo hacerlo!

Sé que en algún momento, además, tendré que hacer conexión izquierda porque, como no todos los materiales (MATNR) que hay en MARD son equipos… no todos están en EQUI.

¿Podéis ayudarme?
¿Se entiende el problema (es la primera vez que escribo en este tipo de foros)?

Muchas gracias de antemano por si pudiérais ayudarme. Estoy empezando a trabajar con queries y estoy muy verde…

Un saludo!

La transacción SQ02 se utiliza para definir las áreas funcionales y los grupos de usuarios que luego se pueden utilizar en consultas (creadas en SQ01).

A continuación, te explicaré cómo puedes configurar una consulta en SQ02 para obtener el listado de los elementos de stock en un almacén, junto con información adicional como el número de lote y el número de equipo.

Pasos para Crear una Consulta en SQ02

Paso 1: Crear un Área Funcional en SQ02

  1. Abrir la Transacción SQ02:

    • Ingresa la transacción SQ02 en el campo de comandos y presiona Enter.
  2. Crear un Área Funcional:

    • Ingresa un nombre para el área funcional y haz clic en el botón de crear.
    • Define los atributos del área funcional (nombre, descripción, etc.).

Paso 2: Definir las Tablas y Campos

  1. Asignar Tablas a la Área Funcional:

    • Selecciona la opción para asignar tablas/join de tablas.
    • Añade las tablas MARD, MCHB, EQUI y EQBS.
    • Define las relaciones entre estas tablas según la lógica descrita anteriormente.
  2. Definir las Relaciones (Join Conditions):

    • Relaciona MARD con MCHB usando MATNR, WERKS, y LGORT.
    • Relaciona MARD con EQBS usando WERKS y LGORT.
    • Relaciona EQBS con EQUI usando EQUNR.

Paso 3: Crear un Grupo de Usuarios en SQ03

  1. Abrir la Transacción SQ03:

    • Ingresa la transacción SQ03 en el campo de comandos y presiona Enter.
  2. Crear un Grupo de Usuarios:

    • Ingresa un nombre para el grupo de usuarios y haz clic en el botón de crear.
    • Asigna usuarios al grupo de usuarios.

Paso 4: Crear la Consulta en SQ01

  1. Abrir la Transacción SQ01:

    • Ingresa la transacción SQ01 en el campo de comandos y presiona Enter.
  2. Crear una Nueva Consulta:

    • Ingresa el nombre de la nueva consulta y haz clic en el botón de crear.
    • Selecciona el área funcional creada en SQ02.
  3. Seleccionar Campos para la Consulta:

    • Selecciona los campos que quieres incluir en la consulta (por ejemplo, MATNR, WERKS, LGORT, LABST, CHARG, EQUNR).
  4. Definir las Condiciones de Selección:

    • Añade una condición de selección para MARD.LABST > 0.
  5. Generar y Ejecutar la Consulta:

    • Guarda y genera la consulta.
    • Ejecuta la consulta para verificar los resultados.

Detalles Adicionales

Definir las Relaciones entre Tablas

En la definición de relaciones entre tablas en SQ02, asegúrate de establecer las condiciones de unión correctamente:

  • Relación entre MARD y MCHB:

    • MARD.MATNR = MCHB.MATNR
    • MARD.WERKS = MCHB.WERKS
    • MARD.LGORT = MCHB.LGORT
  • Relación entre MARD y EQBS:

    • MARD.WERKS = EQBS.B_WERK
    • MARD.LGORT = EQBS.B_LAGER
  • Relación entre EQBS y EQUI:

    • EQBS.EQUNR = EQUI.EQUNR

Campos de Selección y Resultados

  • Campos de Selección:

    • MARD.MATNR (Número de material)
    • MARD.WERKS (Centro)
    • MARD.LGORT (Almacén)
    • MARD.LABST (Stock en libre utilización)
    • MCHB.CHARG (Número de lote)
    • EQUI.EQUNR (Número de equipo)
  • Condiciones de Selección:

    • MARD.LABST > 0

Ejecución de la Consulta

  1. Ejecutar la Consulta en SQ01:
    • Ve a la transacción SQ01.
    • Selecciona la consulta que creaste.
    • Ejecuta la consulta para obtener el listado de stock en el almacén con la información adicional requerida.

Conclusión

Usando SQ02, SQ03, y SQ01, puedes configurar una consulta avanzada en SAP que integra múltiples tablas y obtiene información detallada sobre el stock en almacén, incluyendo números de lote y de equipo. Asegúrate de definir correctamente las relaciones entre tablas y las condiciones de selección para obtener los resultados precisos.

Si tienes alguna pregunta adicional o necesitas más detalles, no dudes en preguntar. ¡Estoy aquí para ayudarte!

Este tema se cerró automáticamente 7 días después de la última publicación. No se permiten nuevas respuestas.