Foro de elhacker.net

Programación => 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
  1. 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:
Código:
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
  1. SELECT t1.NombreServicio, t2.costo
  2. FROM Tabla1 AS t1, Tabla2 AS t2
  3. WHERE t1.IDServicio = t2.IDServicio
  4.  AND año = 2016 AND IDUsuario = 14

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