PDA

Ver la Versión Completa : Duplicados en Vistas


Beita25
19/11/07, 19:13:45
Hola a todos, tengo una dudilla, estoy intentando hacer una vista de las tablas ekko y lfa1, para que me muestre los proveedores. Lo que ocurre es que al tener varias entradas cada proveedor en la tabla ekko, me muestra tantas veces repetido dicho proveedor en la vista. Se puede hacer algo para evitar esos registros duplicados???
Muchas gracias a todos por anticipado.

ballan
20/11/07, 08:57:49
Hola, el problema es que para 1 entrada en la LFA1 vas a tener varias entradas en la EKKO, ademas los campos numero de pedido en la ekko y proveedor en la lfa1 son campos clave por lo que vas a tener que decirle a la vista un criterio para que solo elija una, los criterios puedes aplicarlos en la pestaña condiciones de seleccion, de todas formas no termino de entender muy bien la utilidad de esta vista, quiza si explicas que quieres hacer te podamos ayudar mejor

Beita25
20/11/07, 09:08:29
Quiero que la vista me muestre un listado con los acreedores que tienen un pedido abierto. Pero solo un listado con una entrada para cada acreedor, con lo que llega el problema, al tener un mismo acreedor varios pedidos abiertos, me aparece repetido tantas veces como pedidos tenga. Me explique mejor ahora? el cliente quiere una vista de ese manera, el cliente manda....

ballan
20/11/07, 09:47:02
Pues hasta donde yo se lo que pides no es posible, puesto que en las vistas lo unico que puedes hacer es poner condiciones de seleccion, pero hay la posibilidad de que varios pedidos abiertos satisfagan las mismas condiciones por lo que no podrias diferenciarlos, a no ser que alguien me corrija las opciones que tienes son 2:

Opcion dificil: Crear la vista con SQL nativo (exec sql create view...) pero esta vista que crees no sera accesible desde el diccionario de datos por lo que tendras que hacer un programa que cargue dichos datos

Opcion facil: Hacer un desarrollo que seleccione los datos indicados y se los muestre en un ALV o algo parecido

Beita25
20/11/07, 10:30:04
ok, muchas gracias, seguire intentandolo

miguel.cogolludo
21/11/07, 08:44:38
Lo que yo haria es select distint * from ekko con las condiciones que necesites y luego con esa selecion ir a lfa1 para cojer los datos
Un saludo

vickxo
21/11/07, 09:08:25
Intenta creando una vista intrmedia entre las dos tablas, esta vista debe de tener como campos claves alguna de las llaves que manejen las tablas en cuestion. Al momento de definir la cardinalidad de la vista, debes de darle la menor cardinalidad a la tabla que deseas que no repita los registros. Con esto automaticamente en la vista veras un listado con la relacion de proveedores y al seleccionar alguno se cargara una nueva lista con los pedidos vinculados a este. El truco esta en la defincion de la cardinalidad.
Como creo que podrias hacerlo
1 Crea una tabla z ZT001 que tenga dentro de sus parametros el acreedor
2 Crea una tabla z ZT002 que tenga dentro de sus parametros el numero de pedido
3 Creo una tabla z ZT003 que tenga en sus parametros numero de acreedor y numero de pedido
4 En la tabla ZT001 a traves de la transaccion se11, dale modificacion, da click en la pestaña campos, unica el campo acreedor y da click en la icono que esta del lado izquierdo al boton Ay. Busqueda, ese icono trae una llave color amarillo se llama claves externas, seleccionalo y vincula la tabla LFA1 y al campo de acreedor y selecciona la cardinalidad uno a muchos
5 En la tabla ZT002 a traves de la transaccion se11, dale modificacion, da click en la pestaña campos, unica el campo acreedor y da click en la icono que esta del lado izquierdo al boton Ay. Busqueda, ese icono trae una llave color amarillo se llama claves externas, seleccionalo y vincula la tabla EKKO y al campo de pedidos y selecciona cardinalidad muchos a uno
6 En la tabla ZT003 asigna a los campos acreedor y pedido las claves esternas acreedor y pedido de las tablas ZT001 t ZT002 respectivamente.