Consulta complicadilla

Buenas:
Tengo una tabla de la que tengo que sacar 4 campos de los registros que cumplan la condición de que la "unión" de dos de estos campos sea única, es decir, un 'distinct'.
Cuando digo "unión" no quiero decir 'campo1+campo2', quiero decir que pretendo obtener los registros en los que el campo1 y el campo2 sean distintos.
Concretamente, quiero obtener las descripciones NO REPETIDAS de cada empresa, y de las que resulten, su fecha y su id.
Ejemplo (pongo insert para que estén un poco "colocados"- el orden de los campos es descripción, idempresa, fecha, id):
INSERT #Empresas SELECT 'aaa', 1, '20030101', 100
>INSERT #Empresas SELECT 'bbbb', 1, '20030102', 101
>INSERT #Empresas SELECT 'aaa', 1, '20040103', 102
>INSERT #Empresas SELECT 'bbbb', 1, '20040104', 103
>INSERT #Empresas SELECT 'qqqq', 1, '20030105', 104
>INSERT #Empresas SELECT 'rrrr', 2, '20030106', 105
>INSERT #Empresas SELECT 'qqqq', 2, '20040107', 106
>INSERT #Empresas SELECT 'qqqq', 2, '20040108', 107
y pretendo obtener
'aaa', 1, '20030101', 100
'bbbb', 1, '20030102', 101
'qqqq', 1, '20030105', 104
'rrrr', 2, '20030106', 105
'qqqq', 2, '20040107', 106
Como veis, me interesan las descripciones de cada empresa, NO REPETIDAS.
Sobre la fecha y el id, doy como resultado los datos del primer registro de los que tienen la descripción y el idempresa iguales, pero me daría lo mismo que fueran otroa,
pero eso si, con los datos reales del registro "obtneido", puesto que se realizan una seria de acciones con el id y la fecha obtenidos.
Concretamente, con el recordset que me devuelva la consulta, es decir, con los datos obtenidos, los "recorro", los muestro, y cada línea me da acceso a una página de detalle dependiente del id.
Con 'select distinct descripcion,idempresa from tabla' saco las descripciones no repetidas de cada empresa, pero me faltan la fecha y el id de cada linea devuelta, datos q también necesito.
Si los añado a la lista de selección, en cuanto haya valores que lo puedan provocar, devuelve lineas repetidas en lo que se refiere a la descripción y el idempresa.
He probado con in, con exists, con any, etc., y na'
Saludos y gracias

1 Respuesta

Respuesta
1
Hay varias maneras para conseguirlo. Una de ellas es:
SQL:
select * from TABLA a
where a.rowid = (select min(b.rowid) from TABLA b where b.EMPRESA=a.EMPRESA AND b.ID=a.id );
RESULTADO:
EMPRESA ID FECHA VALOR
---------- -- ---------------- -----
aaa 1 01/01/03 100
bbbb 1 02/01/03 101
qqqq 1 05/01/03 104
qqqq 2 07/01/04 106
rrrr 2 06/01/03 105
5 rows selected

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas