Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => Bases de Datos => Mensaje iniciado por: marlboreano en 30 Septiembre 2016, 20:12 PM

Título: [?] Consulta Sentencia "SELECT" SQL Anidada
Publicado por: marlboreano en 30 Septiembre 2016, 20:12 PM
Hola a todos, soy nuevo en este subforo y recién estoy comenzando a ver las cosas que se pueden ir haciendo con bases de datos (léase, perdón desde ya por mi ignorancia).
El tema es el siguiente:

Tengo una DB con 2 tablas que me interesan: Una llamada "Servicios" (tabla 1) y la otra "PagoServicios" (tabla 2).
(https://k61.kn3.net/C/A/3/5/4/A/71A.jpg)
(Cualquier cosa, si no carga la imágen acá el link https://kn3.net/61CA354A71AJPG.html (https://kn3.net/61CA354A71AJPG.html)).
El hecho es que necesito una sentencia SQL que me seleccione los Nombres de servicios según el ID del servicio de la tabla 2, sin repetir y su respectivo costo, de un usuario específico en un año específico.
Intenté con algo parecido a esto:

Código (sql) [Seleccionar]
SELECT (SELECT DISTINCT t1.nombreservicio FROM Tabla1 AS t, Tabla2 AS t2 WHERE t1.IDServicio = t2.IDServicio), t2.Costo FROM Tabla2 AS t2 WHERE t2.año = 2016 AND IDUsuario = 14;
La cuestión: Sólo me devuelve la primera coincidencia dentro de la búsqueda.
No se si me hago entender pero, el resultado que espero, es el siguiente:
Agua | 80
Gas  | 60

Y no, sólo me tira "Agua | 80", "Agua | 60". Como recién inicio en SQL (sólo manejo las sentencias más básicas que existen) no tengo idea dónde puede estar mi error.

Cualquier sugerencia, corrección y demás será agradecida siempre y cuando sea en un marco de respeto.

Gracias desde ya :).
Título: Re: [?] Consulta Sentencia "SELECT" SQL Anidada
Publicado por: ivancea96 en 30 Septiembre 2016, 23:13 PM
Código (sql) [Seleccionar]
SELECT t1.NombreServicio, t2.costo
FROM Tabla1 as t1, Tabla2 as t2
WHERE t1.IDServicio = t2.IDServicio
  AND año = 2016 AND IDUsuario = 14


Prueba así. Si no te entendí mal, no necesitas hacer la sub-consulta.