#1
|
|||
|
|||
outer join
Hola a todo el mundo, he empezado con SAP hace una semana y seguramente el 90 % de las cosas que diga no tengan sentido, he buscado solución por todos lados y no la encuentro, a ver si alguien me echa un cable.
Posteo la pregunta aquí porque me parece más de programación, si debo hacerlo en otro sitio el moderador puede moverla. Quiero hacer una query con quick viewer de una union de dos tablas, en la primera tengo m registros y en la segunda de 0- a n registros por cada uno de la primera, para ello las enlazo con un left outer join de toda la vida. El caso es que sin ningún filtro la query va bien me da todos los registros que estan en la primera tabla más todos los registros de la segunda con NULL en el registro que no existe en la segunda y si en la primera. ok. Pero de la segunda tabla solo quiero sacar los registros de una determinada fecha para lo cual los filtro en la selección, pero entonces solo me saca los registros de la primera tabla que tienen correspondencia en la segunda, perdiendo que que estan solo en la primera ( vamos no hace el left outer join). Estoy haciendo algo mal ?, estoy seguro. Alguna idea que probar. Siento el ladrillo y las tonterias que haya podido decir pero ya se sabe, la ignorancia es muy atrevida... saludos y gracias a todos |
#2
|
||||
|
||||
No se si es esto, pero tiene toda la pinta.
Imagin a que filtras de modo que solo quieres aquellos registros cuya fecha de creación es el 10.02.1983 vale? Imagina que en la tabla 2º tienes 3 registros del modo siguiente: campo1 campo2 fecha_creacion etc... ______________________________________ XXXXXX XXXXXXXX 10.02.1983 XXXXXX XXXXXXXX 20.03.1983 XXXXXX XXXXXXXX En este caso, imagina que tras el select, si no filtrases por ningúin campo, las tres registros te los devolvería correctamente, pero como hemos filtrado por que la fecha sea igual a 10.02.1983, aunque tiene el left outer, estás filtrando en el WHERE CLAUSE, y por ello no te va a sacar los nulos. Quizás me equivoque, pero he entendido que ese podía ser tu problema. Suerte en tu nueva andadura SAPERA. Un Saludo, Francisco Javier Carrillo Maldonado. |
#3
|
|||
|
|||
Gracias Javier por tu respuesta.
Exactamente me sucede eso, que primero aplica el outer join asignando valores NULL a los registros que no encuentra y luego aplica el filtro con lo cual no aparecen. Como puedo seleccionar los NULL en la fecha poniendo 00.00.0000 que es lo que aparece en el listado dice que fecha no válida. Voy a abusar un poco y te pregunto dos cosas más: En los textos de los campos de selección, aunque en la pantalla de creación de quick view pone "Fecha Inicio", al pedirme la fecha pone algo asi como "Identificación de objeto" que no tengo ni idea de dónde habrá salido, ¿ Se puede cambiar el texto que aparece a la izquierda del campo de selección. Otra cosa: se puede poner un WHERE fijo a alguna de las tablas, hay filtros que deben ir siempre igual y es tonteria que el usuario ( o sea yo) los teclee. Gracias de nuevo, y sí, voy a necesitar mucha suerte. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|