Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-02-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #2  
Antiguo 11-02-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
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.
Responder Con Cita
  #3  
Antiguo 11-02-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 11-02-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
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.
Hola ecfisa, según tu ejemplo la consulta debería ser :

Código SQL [-]
Select COD1, REG_ID From Tabla Where COD2='001'

pero creo que te falta explicar algo mas.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #5  
Antiguo 11-02-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 11-02-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola de nuevo ecfisa, creo que ya te he entendido , la consulta creo que sería esta:

Código SQL [-]
SELECT DISTINCT C1.COD1, (Select First 1 C2.ID From TBL C2 Where C1.COD1=C2.COD1)
FROM TBL C1

Si no es eso, debes seguirnos explicando.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Crear una consulta filtrada por uno o más parametros lefarre SQL 9 01-04-2009 01:54:28
Realizar una consulta sobre los registros que devuelve otra consulta Borjaserrano Firebird e Interbase 12 01-10-2007 23:19:44
Busqueda en Tabla Filtrada don malo Conexión con bases de datos 9 04-07-2007 20:54:53
DBChart, Tabla filtrada ? Fabricio Gráficos 9 14-03-2007 15:30:44
Conflicto entre Query y Tabla filtrada Michael Varios 2 20-05-2004 21:37:43


La franja horaria es GMT +2. Ahora son las 21:38:31.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi