consulta SQL

16/09/2003 - 13:28 por Sanchez Arnoletto Martin Rodrigo | Informe spam
EN SQL server 97:

la instruccion:

SELECT sum(ISNULL((SELECT precio FROM costosprov WHERE idcomponente armado.com_idcomponente AND COSTOSPROV.PREDETERMINADO = 1), 0)) AS precio
FROM COMPONENTES INNER JOIN ARMADO ON COMPONENTES.IDCOMPONENTE ARMADO.COM_IDCOMPONENTE WHERE (ARMADO.IDCOMPONENTE = 'A0103.0060')

me devuelve el error

Servidor: mensaje 130, nivel 15, estado 1, línea 1
No es posible usar una función de agregado con una expresión que contiene un
agregado o una subconsulta.

lo que da a entender claramente que que no puedo hacer una sumatoria de un
campo que es un resultado de una subconsulta.

La pregunta es:
Esto lo estoy ejecutando en un procedimiento almacenado, y el resultado de
:
SELECT ISNULL((SELECT precio FROM costosprov WHERE idcomponente armado.com_idcomponente AND COSTOSPROV.PREDETERMINADO = 1), 0) AS precio
FROM COMPONENTES INNER JOIN ARMADO ON COMPONENTES.IDCOMPONENTE ARMADO.COM_IDCOMPONENTE WHERE (ARMADO.IDCOMPONENTE = 'A0103.0060')

es por EJ.

15.23
17.18
0
24.15

Como puedo hacer para sumarlos sin utilizar cursores???


Gracias desde ya


Ing. Sanchez Arnoletto Martin Rodrigo
messenger: mrsarnoletto@hotmail.com
email: mrsarnoletto@dixisargentina.com.ar
 

Leer las respuestas

#1 Liliana Sorrentino
16/09/2003 - 14:21 | Informe spam
Martín,
sin probar te mando este código, aunque no es fácil sin las estructuras y
algunos datos de ejemplo, espero que te sirva.
Saludos.. Liliana.

SELECT SUM(precio)
FROM componentes
INNER JOIN armado ON componentes.idcomponente = armado.com_idcomponente
INNER JOIN costosprov ON costosprov.idcomponente = armado.com_idcomponente
WHERE armado.com_idcomponente = 'A0103.0060' AND
Costosprov.predeterminado = 1


"Sanchez Arnoletto Martin Rodrigo" escribió en el
mensaje news:OMF8#
EN SQL server 97:

la instruccion:

SELECT sum(ISNULL((SELECT precio FROM costosprov WHERE idcomponente > armado.com_idcomponente AND COSTOSPROV.PREDETERMINADO = 1), 0)) AS precio
FROM COMPONENTES INNER JOIN ARMADO ON COMPONENTES.IDCOMPONENTE > ARMADO.COM_IDCOMPONENTE WHERE (ARMADO.IDCOMPONENTE = 'A0103.0060')

me devuelve el error

Servidor: mensaje 130, nivel 15, estado 1, línea 1
No es posible usar una función de agregado con una expresión que contiene


un
agregado o una subconsulta.

lo que da a entender claramente que que no puedo hacer una sumatoria de un
campo que es un resultado de una subconsulta.

La pregunta es:
Esto lo estoy ejecutando en un procedimiento almacenado, y el resultado


de
:
SELECT ISNULL((SELECT precio FROM costosprov WHERE idcomponente > armado.com_idcomponente AND COSTOSPROV.PREDETERMINADO = 1), 0) AS precio
FROM COMPONENTES INNER JOIN ARMADO ON COMPONENTES.IDCOMPONENTE > ARMADO.COM_IDCOMPONENTE WHERE (ARMADO.IDCOMPONENTE = 'A0103.0060')

es por EJ.

15.23
17.18
0
24.15

Como puedo hacer para sumarlos sin utilizar cursores???


Gracias desde ya


Ing. Sanchez Arnoletto Martin Rodrigo
messenger:
email:


Preguntas similares