SQL

16/01/2004 - 14:07 por Nacho | Informe spam
Hola a todos.

Tengo un problemilla con una SQL que no sé como hacer.
La SQL funciona bien pero al final como condición WHERE quiero que realice
la siguiente condición:
SUM(L.UNIDADESTOTAL*L.COSTE)<>ALBVENTACAB.TOTALCOSTE
Lo he probado de mil y una maneras y nada.
A ver si alguien me puede echar una manita.

Esta es la SQL que tengo y lo anterior es lo que quiero poner al final.

UPDATE ALBVENTACAB SET ALBVENTACAB.TOTALCOSTE=(SELECT
SUM(L.UNIDADESTOTAL*L.COSTE) FROM
ALBVENTALIN L WHERE ALBVENTACAB.NUMSERIE=L.NUMSERIE AND
ALBVENTACAB.NUMALBARAN=L.NUMALBARAN AND ALBVENTACAB.N=L.N
AND ALBVENTACAB.TOTALCOSTE=0)

Saludos.

Preguntas similare

Leer las respuestas

#1 Maximiliano D. A.
16/01/2004 - 15:14 | Informe spam
revisa Having en tus Bol y con ello seguro que lo podras resolver

Salu2
Maximiliano Damian Accotto


"Nacho" escribió en el mensaje
news:%
Hola a todos.

Tengo un problemilla con una SQL que no sé como hacer.
La SQL funciona bien pero al final como condición WHERE quiero que realice
la siguiente condición:
SUM(L.UNIDADESTOTAL*L.COSTE)<>ALBVENTACAB.TOTALCOSTE
Lo he probado de mil y una maneras y nada.
A ver si alguien me puede echar una manita.

Esta es la SQL que tengo y lo anterior es lo que quiero poner al final.

UPDATE ALBVENTACAB SET ALBVENTACAB.TOTALCOSTE=(SELECT
SUM(L.UNIDADESTOTAL*L.COSTE) FROM
ALBVENTALIN L WHERE ALBVENTACAB.NUMSERIE=L.NUMSERIE AND
ALBVENTACAB.NUMALBARAN=L.NUMALBARAN AND ALBVENTACAB.N=L.N
AND ALBVENTACAB.TOTALCOSTE=0)

Saludos.


Respuesta Responder a este mensaje
#2 Javier Loria
16/01/2004 - 17:01 | Informe spam
Hola:
Si mantienes la sintaxis del UPDATE ANSI, tendras que "repertir" el
SELECT, o sea algo como:
=UPDATE ALBVENTACAB
SET ALBVENTACAB.TOTALCOSTE (SELECT SUM(L.UNIDADESTOTAL*L.COSTE)
FROM ALBVENTALIN L
WHERE ALBVENTACAB.NUMSERIE=L.NUMSERIE
AND ALBVENTACAB.NUMALBARAN=L.NUMALBARAN
AND ALBVENTACAB.N=L.N
AND ALBVENTACAB.TOTALCOSTE=0)
WHERE ALBVENTACAB.TOTALCOSTE (SELECT SUM(L.UNIDADESTOTAL*L.COSTE)
FROM ALBVENTALIN L
WHERE ALBVENTACAB.NUMSERIE=L.NUMSERIE
AND ALBVENTACAB.NUMALBARAN=L.NUMALBARAN
AND ALBVENTACAB.N=L.N
AND ALBVENTACAB.TOTALCOSTE=0)
= El T-SQL permite hacer un FROM que simplificar la sintaxis usando una
Tabla derivada:
=UPDATE ALBVENTACAB
SET TOTALCOSTE=NewTotal
FROM ALBVENTACAB JOIN
(SELECT NUMSERIE
, NUMALBARAN
, N
, SUM(L.UNIDADESTOTAL*L.COSTE) AS NewTotal
FROM ALBVENTALIN
GROUP BY NUMSERIE, NUMALBARAN, N) AS L
ON ALBVENTACAB.NUMSERIE=L.NUMSERIE
AND ALBVENTACAB.NUMALBARAN=L.NUMALBARAN
AND ALBVENTACAB.N=L.N)
WHERE ALBVENTACAB.TOTALCOSTE=0
AND ALBVENTACAB.TOTALCOSTE<>NewTotal
=
Como no tenemos la estructura de las tablas, ni algunos ejemplos, todo esta
sin probar y es probable que tenga errores de sintaxis :(, pero tal vez te
sirve de guia.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Nacho escribio:
Hola a todos.

Tengo un problemilla con una SQL que no sé como hacer.
La SQL funciona bien pero al final como condición WHERE quiero que
realice la siguiente condición:
SUM(L.UNIDADESTOTAL*L.COSTE)<>ALBVENTACAB.TOTALCOSTE
Lo he probado de mil y una maneras y nada.
A ver si alguien me puede echar una manita.

Esta es la SQL que tengo y lo anterior es lo que quiero poner al
final.

UPDATE ALBVENTACAB SET ALBVENTACAB.TOTALCOSTE=(SELECT
SUM(L.UNIDADESTOTAL*L.COSTE) FROM
ALBVENTALIN L WHERE ALBVENTACAB.NUMSERIE=L.NUMSERIE AND
ALBVENTACAB.NUMALBARAN=L.NUMALBARAN AND ALBVENTACAB.N=L.N
AND ALBVENTACAB.TOTALCOSTE=0)

Saludos.
Respuesta Responder a este mensaje
#3 Nacho
16/01/2004 - 20:52 | Informe spam
Gracias a todos, con vuestra ayuda ya lo he solucionado.

Un saludo.
"Javier Loria" escribió en el mensaje
news:
Hola:
Si mantienes la sintaxis del UPDATE ANSI, tendras que "repertir" el
SELECT, o sea algo como:
=> UPDATE ALBVENTACAB
SET ALBVENTACAB.TOTALCOSTE> (SELECT SUM(L.UNIDADESTOTAL*L.COSTE)
FROM ALBVENTALIN L
WHERE ALBVENTACAB.NUMSERIE=L.NUMSERIE
AND ALBVENTACAB.NUMALBARAN=L.NUMALBARAN
AND ALBVENTACAB.N=L.N
AND ALBVENTACAB.TOTALCOSTE=0)
WHERE ALBVENTACAB.TOTALCOSTE> (SELECT SUM(L.UNIDADESTOTAL*L.COSTE)
FROM ALBVENTALIN L
WHERE ALBVENTACAB.NUMSERIE=L.NUMSERIE
AND ALBVENTACAB.NUMALBARAN=L.NUMALBARAN
AND ALBVENTACAB.N=L.N
AND ALBVENTACAB.TOTALCOSTE=0)
=> El T-SQL permite hacer un FROM que simplificar la sintaxis usando una
Tabla derivada:
=> UPDATE ALBVENTACAB
SET TOTALCOSTE=NewTotal
FROM ALBVENTACAB JOIN
(SELECT NUMSERIE
, NUMALBARAN
, N
, SUM(L.UNIDADESTOTAL*L.COSTE) AS


NewTotal
FROM ALBVENTALIN
GROUP BY NUMSERIE, NUMALBARAN, N) AS L
ON ALBVENTACAB.NUMSERIE=L.NUMSERIE
AND ALBVENTACAB.NUMALBARAN=L.NUMALBARAN
AND ALBVENTACAB.N=L.N)
WHERE ALBVENTACAB.TOTALCOSTE=0
AND ALBVENTACAB.TOTALCOSTE<>NewTotal
=>
Como no tenemos la estructura de las tablas, ni algunos ejemplos, todo


esta
sin probar y es probable que tenga errores de sintaxis :(, pero tal vez te
sirve de guia.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Nacho escribio:
> Hola a todos.
>
> Tengo un problemilla con una SQL que no sé como hacer.
> La SQL funciona bien pero al final como condición WHERE quiero que
> realice la siguiente condición:
> SUM(L.UNIDADESTOTAL*L.COSTE)<>ALBVENTACAB.TOTALCOSTE
> Lo he probado de mil y una maneras y nada.
> A ver si alguien me puede echar una manita.
>
> Esta es la SQL que tengo y lo anterior es lo que quiero poner al
> final.
>
> UPDATE ALBVENTACAB SET ALBVENTACAB.TOTALCOSTE=(SELECT
> SUM(L.UNIDADESTOTAL*L.COSTE) FROM
> ALBVENTALIN L WHERE ALBVENTACAB.NUMSERIE=L.NUMSERIE AND
> ALBVENTACAB.NUMALBARAN=L.NUMALBARAN AND ALBVENTACAB.N=L.N
> AND ALBVENTACAB.TOTALCOSTE=0)
>
> Saludos.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida