Select Distinct.

09/09/2003 - 00:03 por Aníbal | Informe spam
Hola,
Como hago para seleccionar varios campos con una sola consulta SQL pero que
solo se fije si uno de ellos esta repetido.
Ejemplo:
Si pongo : "Select Distinct Campo1,Campo2,Campo3 From Tabla" me va a tomar
un solo registro si encuentra registros que tengan los tres campos repetidos
simultaneamente y todos los demas los va a mostrar.
Lo que yo pretendo es que el "Distinct" lo aplique solo al Campo1, o sea,
que seleccione todos los Campo1,Campo2,Campo3 y si encuentra registros donde
Campo1 este repetido, omita los duplicados.
Espero que se entienda.
Saludos.

Preguntas similare

Leer las respuestas

#6 Aníbal
09/09/2003 - 22:28 | Informe spam
Perfecto, Muchisimas Grasias.
Que facil que era y no me habia dado cuenta.
Lamento haber molestado tanto con todo este tema.
Muchas gracias.
Saludos a todos.


"Fernando España" escribió en el mensaje
news:
Anibal, si no entiendo mal, entonces tu problema no es de diseño ni en la
consulta en si, tu problema es en los parametros que necesitas para


ejecutar
la consultas
por ejemplo decias que necesitas saber que datos existen para una fecha y
hora especifica, nomas debes agregar a tu select los parametros necesarios
ej.
Yo haria esto:

Select Distinct Origen,Destino from tabla where Fecha=@Fecha and


hora=@hora
con esto lleanrias tu listbox como dices, pero no necesitas todo en tu
listbox sino unicamente el primer registro conicidente de los origenes y
destinos
asi que selecciona unicamente esos campos. tu listbox mostraria unicamente
Origen Destino
O1 D1
O2 D2

Seguido de eso, cuando el usuario seleccione una de esas columnas ,


deberas
crear otra sentencia que ejecutar que seria asi:

Select * from tabla where Fecha=@Fecha and hora=@hora and Origen=@origen


and
destino=@destino

dado que decha y hora ya las tenias anteriormente, y origen y destino los
acabas de seleccionar. Asi tendras la informacion que necesitas
pero esto es mas un problema de tu front end y la forma como elaboras las
consultas
Solo tienes que idear la forma de realizar la consulta. saludos

Fernando España


"Aníbal" wrote in message
news:OaIx$
> Hola Fernando,
> Me parece buena la idea del Select Into, pero me quedé pensado en lo que
> digiste de que es un problema de diseño de almacenamiento, y me pregunto
> como podría mejorarlo, o directamente restructurarlo.
> La Tabla que estoy usando sirve para guardar Reservas de Viajes.
> Y la Clave Principal es IdSerie.
> Menos IdSerie y Pasajero todos los demas campos se tienen que poder
repetir
> ya que más de una persona podría hacer una reserva para la misma Fecha,
> Hora,Origen,Destino
> Entonces la tabla se podría ver así:
>
> IdSerie Origen Destino Fecha Hora Pasajero Asiento
Ventanilla/Pasillo
> 1 O1 D1 F1 H1 P1 5
>
> Ventanilla
> 2 O1 D1 F1 H2 P2 16
>
> Pasillo
> 3 O2 D2 F2 H3 P3 9
>
> Ventanilla
>
> Entonces yo quiero buscar de que viajes se han echo Reservas
> (Origen,Destino) para una Fecha y Hora Ingresada por el usuario Estos
datos
> los voy a mostrar en un ListBox. Pero en una misma consulta también


quiero
> meter los demas datos para que cuando se seleccione en el ListBox una


Fila
> correspondiente a un Origen-Destino en Otro ListBox se muestren los
> demás datos correpondiente a los pasajeros de cada Origen-Destino.
> Entonces por eso necesito hacer un Select donde se seleccionen todos los
> campos, pero sin repetisiones en el Origen y Destino por un lado, pero


que
> se puedan repetir todos los demás datos.
> Pero hay está el problema ya que la clave principa hace que la clausula
> Distinct siempre sea inservivle, queriendo tomar datos de todos los


campos
a
> la vez.
>
>
>
>
>
>


Respuesta Responder a este mensaje
#7 juliocbb
27/06/2012 - 09:32 | Informe spam
Javier Loria escribió el 09/09/2003 05:12 :
Hola Anibal:
Aparte de lo mencionado por Fernando, podrias en vez de usar DISTINCT
usar un GROUP BY y funciones de AGRUPAMIENTO para seleccionar los valores.
Algo como:
SELECT Campo1,
MAX(Campo2),
MIN(Campo3)
FROM Tabla
GROUP BY Campo1
Porque si no SQL no sabe cual de todas las filas usar.
Ojo eso si que la ventaja es que la respuesta de Fernando que te da filas
verdaderas.

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Aníbal escribio:
Hola,
Como hago para seleccionar varios campos con una sola consulta SQL
pero que solo se fije si uno de ellos esta repetido.
Ejemplo:
Si pongo : "Select Distinct Campo1,Campo2,Campo3 From Tabla" me va a
tomar un solo registro si encuentra registros que tengan los tres
campos repetidos simultaneamente y todos los demas los va a mostrar.
Lo que yo pretendo es que el "Distinct" lo aplique solo al Campo1, o
sea, que seleccione todos los Campo1,Campo2,Campo3 y si encuentra
registros donde Campo1 este repetido, omita los duplicados.
Espero que se entienda.
Saludos.




que buena opción javier la neta resolví mi problema y mi proyecto esta full jeje tks
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida