SQL Server - SubConsulta con mas de una referencia externa

   
Vista:

SubConsulta con mas de una referencia externa

Publicado por Hernan (1 intervención) el 24/01/2015 20:16:32
Que tal a todos!? Es mi primer mensaje y espero me puedan ayudar.
Tengo que resolver un ejercicio y no termino de entender que es lo que estoy haciendo mal.
Tengo una Tabla Canciones y una Tabla Compras. Las canciones tienen un precio pero las compras pueden ser por mas o menos del precio de la canción. El ejercicio pide obtener la diferencia de precio mas alta entre una compra en algún momento y el precio actual(dada por la columna precio en Canciones).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CREATE TABLE dbo.CANCIONES
(
id_cancion int  IDENTITY(1,1) primary key,
id_album int,
nombre varchar(50),
numero numeric(4),
duracion numeric(4,2),
genero varchar(50),
vivo varchar(4),
precio numeric(20,2)
)
 
CREATE TABLE dbo.COMPRAS
(
id_cancion int,
id_usuario int,
precio numeric(20,2),
fecha datetime
)

Obviamente id_cancion es fk a la tabla canciones

Lo que hice fue lo siguiente:

1
2
3
SELECT CA.NOMBRE,
		(SELECT MAX(ABS(CA.precio-CO.PRECIO)) FROM DBO.COMPRAS CO WHERE CO.ID_CANCION=CA.ID_CANCION) DIF
		FROM CANCIONES CA

El problema es que me arroja el siguiente error:

Se han especificado múltiples columnas en una expresión de agregado que contiene una referencia externa. Si una expresión agregada contiene una referencia externa, ésta deberá ser la única columna a la que se haga referencia en la expresión.

entonces me cuesta pensar en una alternativa...
Desde ya muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

SubConsulta con mas de una referencia externa

Publicado por Isaias (3186 intervenciones) el 26/01/2015 18:38:57
Inténtalo de esta forma

SELECT CA.NOMBRE,
(SELECT MAX(ABS(CA.precio-CO.PRECIO)) FROM DBO.COMPRAS CO JOIN CANCIONES CA ON CO.ID_CANCION=CA.ID_CANCION) DIF
FROM CANCIONES CA
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

SubConsulta con mas de una referencia externa

Publicado por Isaias (3186 intervenciones) el 26/01/2015 23:59:33
No se de donde salio el DIF, no lo tomes en cuenta

Ya me acorde, creo que ya lo trae tu consulta y es el nombre de la columna RESULTADO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar