Argel Gastélum Arellánez escribió:
   Hola a todos, buenas tardes.

Tengo una tabla en una base de datos que hice en OOo Base 3.0, con los campos "Clave_LEVV" (no es llave primaria, y tiene datos que pueden repetirse para registros diferentes) y "Seguimiento" (que puede tomar valores de 1, 2 y 3), entre otros campos.

Necesito hacer una consulta a dicha tabla, de forma que filtre los registros sólo para los valores de "1" y "2" en el campo "Seguimiento", lo cual puedo hacer fácilmene desde la vista de diseño de Consulta. De esta forma obtengo una lista parecida a esta:

Clave LEVV               Seguimiento
0001A                                1
0001A                                2
0001B                                1
0001B                                2
0001C                                1
0001D                                1

Sin embargo, me gustaría filtrar además por aquellos registros que están duplicados en su campo "Clave_LEVV", de forma que sólo me muestre algo como esto:

Clave LEVV               Seguimiento
0001A                                1
0001A                                2
0001B                                1
0001B                                2

¿Es posible? Seguramente se trata de algo muy sencillo pero no he encontrado la forma de hacerlo.

   De antemano muchas gracias por la ayuda.

   Saludos y buen fin de semana.

--
   Argel.

Hola de nuevo. Bueno, pues buscando en internet encontré una solución a mi problema. Lo que hice fue lo siguiente:

1. Para obtener una lista de los registros filtrados por el campo "Seguimiento" cuando toma valores de "1" y "2", usé la siguiente consulta (la hice mediante la vista diseño para agregar otros campos que me interesaba tener para cada registro, y filtrar al mismo tiempo por otro campo llamado "Procesada_A", cuando toma valores de "falso", y por otro campo llamado "Clave_Proyecto", cuando toma el valor "P1-MPM"):

SELECT "T - Lista de Muestras"."Clave_LEVV" AS "Clave LEVV", "T - Lista de Muestras"."Seguimiento" AS "Seguimiento", "T - Lista de Muestras"."Clave_Cliente" AS "Clave Cliente", "T - Congelador A (-20 °C)"."Procesada_A" AS "Procesada", "T - Congelador A (-20 °C)"."Canastilla_A" AS "Canastilla", "T - Congelador A (-20 °C)"."Caja_A" AS "Caja", "T - Congelador A (-20 °C)"."Posicion_A" AS "Posición", "T - Congelador A (-20 °C)"."Etiqueta_caja_A" AS "Etiqueta de la caja" FROM "T - Congelador A (-20 °C)" AS "T - Congelador A (-20 °C)", "T - Lista de Muestras" AS "T - Lista de Muestras", "T - Lista de Proyectos" AS "T - Lista de Proyectos" WHERE ( "T - Lista de Muestras"."Seguimiento" = '1' AND "T - Congelador A (-20 °C)"."Procesada_A" = False AND "T - Lista de Muestras"."Proyecto" = "T - Lista de Proyectos"."ID_Proyecto" AND "T - Congelador A (-20 °C)"."Muestra" = "T - Lista de Muestras"."ID_Muestra" AND "T - Lista de Proyectos"."Clave_Proyecto" = 'P1-MPM' OR "T - Lista de Muestras"."Seguimiento" = '2' AND "T - Congelador A (-20 °C)"."Procesada_A" = False AND "T - Lista de Muestras"."Proyecto" = "T - Lista de Proyectos"."ID_Proyecto" AND "T - Congelador A (-20 °C)"."Muestra" = "T - Lista de Muestras"."ID_Muestra" ) ORDER BY "Clave LEVV" ASC, "Seguimiento" ASC

2. Después hice una "vista" de esta consulta, a la que llamé "P1-MPM <V04> Lista de Alícuotas-A de seg 1 y 2, no procesadas".

3. De la vista hecha en el paso 2, hice otra consulta, esta vez directamente en SQL (observé que al tratar de cambiar a la vista diseño para ver cómo se tendría que hacer desde ahí, al tratar de ejecutar la consulta me manda el mensaje de error de que la instrucción SQL es incorrecta en su sintaxis, pero al guardarla y ejecutarla desde la vista SQL funciona sin problemas):

SELECT DISTINCT "Clave LEVV", "Seguimiento", "Clave Cliente", "Procesada", "Canastilla", "Caja", "Posición", "Etiqueta de la caja" FROM "P1-MPM <V04> Lista de Alícuotas-A de seg 1 y 2, no procesadas" WHERE "P1-MPM <V04> Lista de Alícuotas-A de seg 1 y 2, no procesadas"."Clave LEVV" IN ( SELECT "Clave LEVV" FROM "P1-MPM <V04> Lista de Alícuotas-A de seg 1 y 2, no procesadas" AS "Tmp" GROUP BY "Clave LEVV" HAVING COUNT( * ) > 1 ) ORDER BY "P1-MPM <V04> Lista de Alícuotas-A de seg 1 y 2, no procesadas"."Clave LEVV"

   ¡ Y listo !, así pude extraer la información que necesitaba.

Lamentablemente mi conocimiento de SQL está muy limitado a lo que he podido aprender desde hace una semana en mis ratos libres (que no es mucho), así que no supe cómo hacerlo todo desde un solo paso con una sola consulta SQL. Además, aún no entiendo completamente la lógica de esta segunda consulta SQL. Esta solución la encontré en la siguiente dirección, por si le interesa a alguien:

http://personal.lobocom.es/claudio/sql018.htm

Saludos a todos y de antemano muchas gracias por sus comentarios. Espero que no haya sido demasiado extenso en mi descripción.

--
   Argel.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Responder a