Como hacer una consulta

22/09/2004 - 13:27 por fjmasero | Informe spam
Wenas:

Tengo una tabla de la que tengo que sacar 4 campos de los
registros q cumplan la condicion de q la "unión" de dos
de estos campos sea unica, es decir, un 'distinct'.

Con 'select distinct campo1,campo2 from tabla' saco los
registros que quiero, pero también necesito los campos
campo3 y campo4.

Si los añado a la lista de selección, en cuanto haya
valores que lo puedan provocar, devuelve registros = en
lo que se refiere a los campos 1 y 2.

He probado con in, con exists, con any, etc., y na'.

Espero haberme explicado.

¿Se os ocurre como resolverlo?.

Salu2 y gracias.

Preguntas similare

Leer las respuestas

#1 Liliana Sorrentino
22/09/2004 - 14:19 | Informe spam
Hola,
Si tu tabla tiene información de este tipo:

create table #test
(campo1 char, campo2 char, campo3 char, campo4 char)

insert #test select '1', '1', '1', '1'
insert #test select '1', '2', '1', '1'
insert #test select '2', '1', '1', '1'
insert #test select '2', '2', '1', '1'
insert #test select '2', '3', '1', '1'
insert #test select '3', '1', '1', '1'
insert #test select '3', '1', '1', '1'

select distinct (campo1 + campo2), campo3, campo4 from #test

Pero si campo3 y campo4 pueden ser diferentes para una unión dada, por
ejemplo:

insert #test select '3', '1', '1', '2'

Entonces deberás decidir cuáles son los que quieras mostrar.

Saludos, Liliana.

"fjmasero" escribió en el mensaje
news:3a3001c4a097$27fb6830$
Wenas:

Tengo una tabla de la que tengo que sacar 4 campos de los
registros q cumplan la condicion de q la "unión" de dos
de estos campos sea unica, es decir, un 'distinct'.

Con 'select distinct campo1,campo2 from tabla' saco los
registros que quiero, pero también necesito los campos
campo3 y campo4.

Si los añado a la lista de selección, en cuanto haya
valores que lo puedan provocar, devuelve registros = en
lo que se refiere a los campos 1 y 2.

He probado con in, con exists, con any, etc., y na'.

Espero haberme explicado.

¿Se os ocurre como resolverlo?.

Salu2 y gracias.
Respuesta Responder a este mensaje
#2 fjmasero
22/09/2004 - 15:03 | Informe spam
Gracias Liliana por contestar.

campo1 y campo2 son de distinto tipo, varcha e int
respectivamente.

¿Como solucionarlo?.

Salu2

Hola,
Si tu tabla tiene información de este tipo:

create table #test
(campo1 char, campo2 char, campo3 char, campo4 char)

insert #test select '1', '1', '1', '1'
insert #test select '1', '2', '1', '1'
insert #test select '2', '1', '1', '1'
insert #test select '2', '2', '1', '1'
insert #test select '2', '3', '1', '1'
insert #test select '3', '1', '1', '1'
insert #test select '3', '1', '1', '1'

select distinct (campo1 + campo2), campo3, campo4 from


#test

Pero si campo3 y campo4 pueden ser diferentes para una


unión dada, por
ejemplo:

insert #test select '3', '1', '1', '2'

Entonces deberás decidir cuáles son los que quieras


mostrar.

Saludos, Liliana.

"fjmasero" escribió en el mensaje
news:3a3001c4a097$27fb6830$
Wenas:

Tengo una tabla de la que tengo que sacar 4 campos de los
registros q cumplan la condicion de q la "unión" de dos
de estos campos sea unica, es decir, un 'distinct'.

Con 'select distinct campo1,campo2 from tabla' saco los
registros que quiero, pero también necesito los campos
campo3 y campo4.

Si los añado a la lista de selección, en cuanto haya
valores que lo puedan provocar, devuelve registros = en
lo que se refiere a los campos 1 y 2.

He probado con in, con exists, con any, etc., y na'.

Espero haberme explicado.

¿Se os ocurre como resolverlo?.

Salu2 y gracias.


.

Respuesta Responder a este mensaje
#3 Liliana Sorrentino
22/09/2004 - 15:25 | Informe spam
En ese caso sería:
SELECT @campo1 + RIGHT( '00000' + CAST(@campo2 AS VARCHAR ), 5)

Pero me sigue quedando la duda sobre la información

"fjmasero" escribió en el mensaje
news:165001c4a0a4$9a8c6770$
Gracias Liliana por contestar.

campo1 y campo2 son de distinto tipo, varcha e int
respectivamente.

¿Como solucionarlo?.

Salu2

Hola,
Si tu tabla tiene información de este tipo:

create table #test
(campo1 char, campo2 char, campo3 char, campo4 char)

insert #test select '1', '1', '1', '1'
insert #test select '1', '2', '1', '1'
insert #test select '2', '1', '1', '1'
insert #test select '2', '2', '1', '1'
insert #test select '2', '3', '1', '1'
insert #test select '3', '1', '1', '1'
insert #test select '3', '1', '1', '1'

select distinct (campo1 + campo2), campo3, campo4 from


#test

Pero si campo3 y campo4 pueden ser diferentes para una


unión dada, por
ejemplo:

insert #test select '3', '1', '1', '2'

Entonces deberás decidir cuáles son los que quieras


mostrar.

Saludos, Liliana.

"fjmasero" escribió en el mensaje
news:3a3001c4a097$27fb6830$
Wenas:

Tengo una tabla de la que tengo que sacar 4 campos de los
registros q cumplan la condicion de q la "unión" de dos
de estos campos sea unica, es decir, un 'distinct'.

Con 'select distinct campo1,campo2 from tabla' saco los
registros que quiero, pero también necesito los campos
campo3 y campo4.

Si los añado a la lista de selección, en cuanto haya
valores que lo puedan provocar, devuelve registros = en
lo que se refiere a los campos 1 y 2.

He probado con in, con exists, con any, etc., y na'.

Espero haberme explicado.

¿Se os ocurre como resolverlo?.

Salu2 y gracias.


.

Respuesta Responder a este mensaje
#4 fjmasero
22/09/2004 - 15:45 | Informe spam
Vaya Liliana.

Me temo q no me he explicado bien.

Cuando dije la "unión" entre campo1 y campo2, no quería
decir "unión física" (+), sino que el distinct fuera para
los dos campos.

Es decir, si tenemos por ejemplo

campo1 campo2 campo3 campo4
pepe 1 xxx yyy
pepe 1 rrr yyy
pepe 2 xxx rrr
juan 2 eeee qqq

pretendo q la consulta me devuelva los registros

pepe 1 xxx yyy
pepe 2 xxx rrr
juan 2 eeee qqq

En el caso del primero, como ves, campo1 y campo2 se
repiten con el registro de la tabla, y el distinct
debería devolverme solo uno de los dos.

Salu2 y gracias nuevamente.


En ese caso sería:
SELECT @campo1 + RIGHT( '00000' + CAST(@campo2 AS


VARCHAR ), 5)

Pero me sigue quedando la duda sobre la información

"fjmasero" escribió en el mensaje
news:165001c4a0a4$9a8c6770$
Gracias Liliana por contestar.

campo1 y campo2 son de distinto tipo, varcha e int
respectivamente.

¿Como solucionarlo?.

Salu2

Hola,
Si tu tabla tiene información de este tipo:

create table #test
(campo1 char, campo2 char, campo3 char, campo4 char)

insert #test select '1', '1', '1', '1'
insert #test select '1', '2', '1', '1'
insert #test select '2', '1', '1', '1'
insert #test select '2', '2', '1', '1'
insert #test select '2', '3', '1', '1'
insert #test select '3', '1', '1', '1'
insert #test select '3', '1', '1', '1'

select distinct (campo1 + campo2), campo3, campo4 from


#test

Pero si campo3 y campo4 pueden ser diferentes para una


unión dada, por
ejemplo:

insert #test select '3', '1', '1', '2'

Entonces deberás decidir cuáles son los que quieras


mostrar.

Saludos, Liliana.

"fjmasero" escribió en el mensaje
news:3a3001c4a097$27fb6830$
Wenas:

Tengo una tabla de la que tengo que sacar 4 campos de




los
registros q cumplan la condicion de q la "unión" de dos
de estos campos sea unica, es decir, un 'distinct'.

Con 'select distinct campo1,campo2 from tabla' saco los
registros que quiero, pero también necesito los campos
campo3 y campo4.

Si los añado a la lista de selección, en cuanto haya
valores que lo puedan provocar, devuelve registros = en
lo que se refiere a los campos 1 y 2.

He probado con in, con exists, con any, etc., y na'.

Espero haberme explicado.

¿Se os ocurre como resolverlo?.

Salu2 y gracias.


.





.

Respuesta Responder a este mensaje
#5 Liliana Sorrentino
22/09/2004 - 16:32 | Informe spam
Es lo mismo, pero ahora repito la pregunta con respecto a tu información,
¿porqué 'pepe', 1, va con 'xxx' e 'yyy' y no con 'rrr' e 'yyy'?

La sintaxis de la consulta sería:
SELECT campo1, campo2, y acá alguna función de agregado para el resto de
los campos
FROM tabla
GROUP BY campo1, campo2


"fjmasero" escribió en el mensaje
news:3b5401c4a0aa$6e854a10$
Vaya Liliana.

Me temo q no me he explicado bien.

Cuando dije la "unión" entre campo1 y campo2, no quería
decir "unión física" (+), sino que el distinct fuera para
los dos campos.

Es decir, si tenemos por ejemplo

campo1 campo2 campo3 campo4
pepe 1 xxx yyy
pepe 1 rrr yyy
pepe 2 xxx rrr
juan 2 eeee qqq

pretendo q la consulta me devuelva los registros

pepe 1 xxx yyy
pepe 2 xxx rrr
juan 2 eeee qqq

En el caso del primero, como ves, campo1 y campo2 se
repiten con el registro de la tabla, y el distinct
debería devolverme solo uno de los dos.

Salu2 y gracias nuevamente.


En ese caso sería:
SELECT @campo1 + RIGHT( '00000' + CAST(@campo2 AS


VARCHAR ), 5)

Pero me sigue quedando la duda sobre la información

"fjmasero" escribió en el mensaje
news:165001c4a0a4$9a8c6770$
Gracias Liliana por contestar.

campo1 y campo2 son de distinto tipo, varcha e int
respectivamente.

¿Como solucionarlo?.

Salu2

Hola,
Si tu tabla tiene información de este tipo:

create table #test
(campo1 char, campo2 char, campo3 char, campo4 char)

insert #test select '1', '1', '1', '1'
insert #test select '1', '2', '1', '1'
insert #test select '2', '1', '1', '1'
insert #test select '2', '2', '1', '1'
insert #test select '2', '3', '1', '1'
insert #test select '3', '1', '1', '1'
insert #test select '3', '1', '1', '1'

select distinct (campo1 + campo2), campo3, campo4 from


#test

Pero si campo3 y campo4 pueden ser diferentes para una


unión dada, por
ejemplo:

insert #test select '3', '1', '1', '2'

Entonces deberás decidir cuáles son los que quieras


mostrar.

Saludos, Liliana.

"fjmasero" escribió en el mensaje
news:3a3001c4a097$27fb6830$
Wenas:

Tengo una tabla de la que tengo que sacar 4 campos de




los
registros q cumplan la condicion de q la "unión" de dos
de estos campos sea unica, es decir, un 'distinct'.

Con 'select distinct campo1,campo2 from tabla' saco los
registros que quiero, pero también necesito los campos
campo3 y campo4.

Si los añado a la lista de selección, en cuanto haya
valores que lo puedan provocar, devuelve registros = en
lo que se refiere a los campos 1 y 2.

He probado con in, con exists, con any, etc., y na'.

Espero haberme explicado.

¿Se os ocurre como resolverlo?.

Salu2 y gracias.


.





.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida