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).
Obviamente id_cancion es fk a la tabla canciones
Lo que hice fue lo siguiente:
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
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


0