![]() |
Consulta filtrada
Hola, tengo problemas al querer filtrar una consulta en Firebird. La tabla, simplificada a lo relevante, queda así:
CREATE TABLE TBL( COD1 CHAR(2) NOT NULL, COD2 CHAR(3) NOT NULL, REG_ID INTEGER NOT NULL, /* autoincremental */ CONSTRAINT TBL_PK PRIMARY KEY(COD1, COD2) ); Los valores de COD1 y COD2 pueden estar repetidos, siempre que no lo hagan respectivamente en dos registros diferentes (puesto que provocarían una excepción, logicamente). Como quiero que COD1 aparezca sólo una vez, utilizo: SELECT DISTINCT COD1 FROM TBL, pero esto no me permite obtener otro campo. Infiero que cuando trato con: SELECT DISTINCT COD1, TBL_ID FROM TBL (por ejemplo), que DISTINCT afecta también a TBL_ID y al ser estos todos diferentes, aparecen consecuentemente COD1 repetidos. Quizá no es posible esta consulta y deba reestructurar. He buscado varios días en múltiples ejemplos pero no doy con la solución, agradezco su atención y cualquier sugerencia. Saludos cordiales al foro. |
Hola, no sé seguir tu explicación.
Quizás sería más rápido que nos pusieras un ejemplo. Muestra cuatro o cinco registros que pudiera haber en la tabla, y enseñanos que resultado te gustaría que sacara tu consulta a partir de ellos. Saludos. |
Gracias por tu respuesta Guillotmarc, a ver si puedo ejemplificar.
Datos en tabla: COD1| COD2| REG_ID 01 | 001 | 1 01 | 002 | 2 02 | 001 | 3 03 | 001 | 4 01 | 003 | 5 ... Salida que busco: COD1 | REG_ID 01 | 1 02 | 3 03 | 4 De nuevo muchas gracias. |
Cita:
pero creo que te falta explicar algo mas. Saluditos |
Hola Caro, primero gracias.
Tu ejemplo y funcionaría perfectamente si los valores de COD2 para cada COD1 comenzasen necesariamente con '001', pero son asignados sin restricciones de 0 a 999; y si se diera el caso COD1: O1 | COD2: 035 la consulta no lo mostraría. Perdón, no me di cuenta que omiti esto en el primer post. |
Hola de nuevo ecfisa, creo que ya te he entendido :rolleyes:, la consulta creo que sería esta:
Si no es eso, debes seguirnos explicando. Saluditos |
Ahora sí Caro, indudablemente es esa la consulta acertada!
Muchas gracias por tu ayuda. ;) |
| La franja horaria es GMT +2. Ahora son las 05:29:25. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi