Relacionar tabla ORPJ con OUSR

Buenas noches me llamo Juan Antonio soy nuevo en el foro, quiero realizar una consulta que me muestre los proyectos y los responsables de cada uno de ellos, el problema con el que me encuentro es el siguiente, la tabla OPRJ y la tabla OUSR no tengo forma de relacionarlas, he probado con todas las foreign key de la tabla OUSR pero no consigo resultado.
Gracias.

foreign key -> T1.“DfltsGroup”, T1.“Department”, T1.“Branch”, T1.“Country”, T1.“userSign”, T1.“userSign2”, T1.“TPLId”
SELECT T0.“PrjName”, T0.“Active”, T0.“U_beas_status”, T0.“U_beas_type”, T1.“U_NAME”
FROM OPRJ T0 INNER JOIN
OUSR T1 ON T0.“PrjName”= foreign key

Hola Juan
La tabla de OPRJ la unica relacion que tiene con OUSR, es en los campos UserSign(usuario creador del proyecto) y UserSign2 (usuario actualizador)
Si necesitas tener una relación de asignación debes crear un campo de usuario en el caso de que la relación sea uno a muchos o muchos a uno, en caso de ser muchos a muchos debes crear una tabla intermedia (de usuario)

Saludos,
Andres Ramirez Jaramillo :colombia:

1 me gusta

Buenos días Andres, gracias por responder a mi duda, como te comentaba el error es el 339, te adjunto captura de pantalla por si supieses que es lo que pasa.

Solo puedes relacionar según el codigo de usuario de creación del proyecto.
SELECT T0.[PrjCode], T0.[PrjName], T0.[ValidFrom], T0.[ValidTo], T0.[Active], T0.[usersign], T1.[USER_CODE], T1.[U_NAME] FROM OPRJ T0 inner join OUSR T1 on t0.usersign=T1.USERid

Juan
El problema parece ser error de tipos de datos, esto es hana es muy sensible. el campo PrjName es alfanumerico y el campo userSing es numerico

Buenos días y perdonad el retraso en la contestación, el campo T0.“PrjCode” en un NVARCHAR y el campo T1.“userSign” es SMALLINT, he intentado hacer casting o convertor pero no hay manera.
El error que os muestro dice que Protext0182018 es el T0.“PrjCode” y el codigo de usuario es el 2 creo.
Puede ser que tenga que añadir una columna como primary key que sea numérico???
Otra cosa, para filtrar por fechas por parametro existe alguna forma que te muestre un calendario y seleciones las fechas en la consulta?? lo he intentado pero solo me sale para introducir la fecha por teclado.

Gracias.
Juan Antonio López Cano.:es:

Juan
Debes hacer el casting en la condicion del JOIN, donde se comparan los valores, no en el SELECT

Buenas tardes Andres, perdona es verdad pero después de tantas pruebas no me dí cuenta, en el select no tiene sentido, pero da el mismo error, ya me pasaba antes lo que pasa es que puse la captura equivocada.

Gracias.
Juan Antonio López Cano:es:

A ver…
la relación la tienes que hacer por el código del usuario a la tabla de usuarios…
mas arriba te he puesto la forma de hacerlo.

Buenas tardes @meqs, la query que me escribiste no funciona ya que las columnas que tiene la tabla OPRJ y OUSR son las siguientes que te muestro en la captura.
t0.usersign es un columna de OUSR y UserId no no existe en ninguna de las dos tablas.
48


38

Gracias.
Juan Antonio López Cano.:es:

Juan
A nivel de sintaxis la siguiente seria la manera correcta. A nivel lógico no creo que funcione a menos de que en tu empresa creen un proyecto por cada usuario de SAP.

SELECT T0."PrjName", T0."Active", T1."userSign", T1."U_NAME", T1."USER_CODE" 
FROM OPRJ T0 
INNER JOIN OUSR T1 ON  T0."PrjCode"  = TO_NVARCHAR(T1."userSign" )

Saludos,
Andres Ramirez Jaramillo :colombia:

Vamos por partes:
1.- ¿Si ese query lo ejecutas en tu sistema da error o devuelve datos?
2…- En la tabla OPRJ siempre se graba el usuario que crea el proyecto, como en casi todas las tablas de SAP, el usersign, o firma del usuario.
3.- Relacionas ambas tablas por el código y te traes el nombre.

Que no los veas en la lista de campos, no quiere decir que no existan en la tabla dichos campos.
Hombre de poca fé.

o lo que es lo mismo:
SELECT T0.[PrjCode], T0.[PrjName], t0.Usersign FROM OPRJ T0

image

Por otro lado:
OUSR tiene entre sus campos: USERID o INTERNAL_K que hacen referencia al código de usuario en la tabla de usuarios.
image
La join la puedes hacer a cualquiera de los dos.

Buenas noches Andres, gracias por tu respuesta, esa query no devuelve nada, lo he solucionado siguiendo las indicaciones de @meqs

Gracias un Saludo
Juan Antonio López Cano.:es:

Buenas noches @meqs, como comente estoy empezando en en la consultoría Sap, creía que el generador de consultas te mostraba la totalidad de campos, al final ya he podido generar la query gracias a ty ayuda.
Mi empresa también trabaja con Beas y el generador de consultas no te muestra nada de ellas, he podido relacionar las tablas de Sap y Beas y voy consiguiendo el resultado que me piden.
Sabrías de algún curso o formación online sobre querys en Sap.
SELECT T0.“PrjCode”, T0.“PrjName”, T0.“U_beas_status” AS “Estado”, T1.“U_NAME” AS “Responsable”, T2.“DESCRIPTION”
FROM
OPRJ T0 INNER JOIN OUSR T1 ON T0.“UserSign”=T1.“USERID”
INNER JOIN BEAS_PRJ_LINE T2 ON T2.“UserID” = T1.“USERID”

Gracias un Saludo
Juan Antonio López Cano.:es:

Me alegro, deberías marcar el post como solucionado para los que vengan detrás.

Es raro que no te aparezcan las tablas de BEAS en el generador de consultas, las tablas de los Addon o de algunos suelen verse precedidas de @.

Si no te aparecen con el SQL Management Studio puedes ver esas tablas y los nombres de los campos y además te servirá para entender la relación entre las tablas.

BEAS solo lo conozco de demos y de oídas.

Sería interesante que supieras como es el montaje de la instalación, si va sobre la bbdd de tu sociedad de SAP o es una bbdd distinta en el SQL/HANA y hacen insert/updates finales en SAP para que sepas donde tienes que buscar o como la información.

1 me gusta

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.