Progress - Select perfil usuario

   
Vista:

Select perfil usuario

Publicado por Alexander (2 intervenciones) el 02/04/2014 23:55:37
Hola a todos.

por favor necesito ayuda con lo siguiente.

Tengo dos tablas :

Opciones
codigo character(10)
descripion character(40)
menu character(40)

Perfil_Opciones
codigo_perfil character(2)
opcion character(10)

Foreing Key opciones.codigo perfil_opciones.opcion.

El ejemplo con datos seria:

Opciones
"01001 ";"CLIENTES ";"CATALOGOS "
"01002 ";"CIUDADES ";"CATALOGOS "
"01003 ";"REFERENCIAS ";"CATALOGOS "
"01004 ";"EMPLEADOS ";"CATALOGOS "


Perfil_Opciones
"01";"01001 "
"01";"01002 "
"02";"01002 "
"02";"01003 "

por favor necesito hacer un query que me presente el siguiente resultado:
"01001 ";"CLIENTES ";
"01002 ";"CIUDADES ";
"01003 ";"REFERENCIAS ";"02"
"01004 ";"EMPLEADOS ";"02"

Muchas Gracias.
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

Select perfil usuario

Publicado por DparteD (129 intervenciones) el 03/04/2014 13:38:45
Sin hecer comentarios sobre el diseño de las tablas.....
Creo que lo que necesitas es esto:


FOR EACH Perfil_Opciones where Perfil_Opciones.opcion = Opciones.codigo NO-ERROR.
DISPLAY Perfil_Opciones.opcion Opciones.descripcion Perfil_opciones.codigo_perfil.
end.

Si quieres que el resultado sea descargado en un archivo en disco con delimitador ";" .
tendras que hacer un EXPORT con DELIMITER ";" .
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

Select perfil usuario

Publicado por Mario (31 intervenciones) el 05/04/2014 07:04:20
El FOR EACH no lleva "NO-ERROR"; además faltó el EACH de la tabla Opciones.

OUTPUT TO file.prn.
FOR EACH Opciones NO-LOCK,
EACH Perfil_Opciones NO-LOCK WHERE opcion = codigo:
EXPORT DELIMITER ";" codigo descripcion codigo_perfil.
END.
OUTPUT CLOSE.
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

Select perfil usuario

Publicado por DparteD (129 intervenciones) el 06/04/2014 21:10:55
Mario, tienes razon, por poner NO-LOCK puese NO-ERROR.
Pero no tienes porqueusar mas de un EACH si la base de datos esta bien construida.
pruebalo y veras qeu es mas eficaz.
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

Select perfil usuario

Publicado por Mario (31 intervenciones) el 08/04/2014 03:22:53
En el comando que pusiste "FOR EACH Perfil_Opciones where Perfil_Opciones.opcion = Opciones.codigo" a fuerza falta la búsqueda de la tabla Opciones, ya sea con un FIND previo, o FOR EACH, o EACH.
Pruébalo como lo tienes y verás que no compila.
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

Select perfil usuario

Publicado por Alexander (2 intervenciones) el 08/04/2014 16:36:24
Muchas gracias por las respuestas
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

Select perfil usuario

Publicado por DparteD (129 intervenciones) el 10/04/2014 12:48:10
Naturalmete Mario.

he dado por supuesto que previamente hay un FIND a la tabla dentro de un REPEAT para leer la primera tabla en secuencia de principio a fin pero no queria escribir el código entero, igula que no pues el código del EXPORT.

Por supuesto que FRO EACH...., EACH...... es totalmente válido.

De cualquier modo es bueno que exista debate.

Un saludo.
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