Seleccionar regisros

Con esta consulta
SELECT DISTINCT personas.nombre WHERE personas.edad > 18;"
Si aparecen 2 Carlos, muestra solo uno.
¿Pero cómo puedo mostrar los demás campos perteneciantes a ese registro mostrado?, ya que esta consulta solo me devuelve el primer carlos pero no me muestra el campo con su edad
¿Cómo lo hago?
Respuesta
1
Hi,
En una consulta SELECT de SQL los campos que queres que se visualicen se colocan antes del WHERE. Por ejemplo si quieres ver la edad:
"SELECT DISTINCT personas.nombre, personas.edad WHERE personas.edad > 18;"
Lo mismo para ver campo de otras tablas pero tienes que agregar el FROM. Por ejemplo:
"SELECT DISTINCT personas.nombre, ciudad.nombre FROM personas, ciudad WHERE personas.edad > 18;"
Cualquier otra consulta no dudes en preguntarme.
Nahuelon..

3 respuestas más de otros expertos

Respuesta
1
Tienes varias opciones. Una es hacer una subconsulta para cada campo que quieras
select distinct personas.nombre, (select top 1 personas.edad from personas p where p.nombre=personas.nombre) from personas where personas.edad>18
otra es usar group by con cada campo
select personas.nombre, personas.edad from personas where edad>18 group by personas.nombre, personas.edad
Respuesta
1
La sentencia SELECT funciona asi
SELECT DISTINCT listado de campos
FROM tabla
WHERE (Condicion)
ORDER BY Campo
O sea que para que te aparezca la edad tenes que hacer
SELECT DISTINCT Nombre, Edad
FROM Personas
WHERE (Edad>)
ORDER BY Nombre
La Clausula DISTINCT es para evitar que aparezcan duplicados dentro de la misma Selección de registros, a vos te aparecía un CARLOS, es porque te faltaba indicar un campo que los diferencie.
Cualquier cosa pregunta, Atentamente. DX.
PD: Acordate de finalizar la pregunta
Respuesta
1
De nuevo Carlos:
A ver, prueba esto:
SELECT A.nombre, A.edad
FROM 'TUTABLA' A
WHERE
A.nombre=(SELECT DISTINCT B.nombre FROM 'TUTABLA' B
WHERE B.edad>18)
Esto funciona de la siguiente manera:
Con el select exterior selecciona nombre y edad de aquellos registros cuyo nombre surjan del segundo select que pillará solo uno de los nombres que estén duplicado y que sean mayor de 18 años. ¿Algo lioso? :-)
Fíjate que tanto A como B hacen referencia a la misma tabla (lógicamente).

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas