Update con subquery in SQL2000
kingmob non è online. Ultima attività: 17/06/2008 18.09.10kingmob
Inserito il: 13 maggio 2008 10.12
14 messaggi dal 22 ago 2007 Istalla Microsoft Silverlight!
Salve a tutti/e. Ho un db in SQL2000, vorrei sapere se è possibile fare una query di update con una subquery nella where che seleziona due colonne. Ovvero una cosa di questo tipo:

Tabelle:
tab1, tab2

Colonne:
tab1 = a,b,c
tab2 = d,e,f,g,h

Query:
update tab1 set (a,b) = (select sum(d * e), sum(f * g) from tab2 where c = h group by h)

Una query di questo tipo è compatibile con SQL2000? Qual'è la sintassi corretta? Ho provato e riprovato ma mi da sempre errore...

Grazie,
Marco
Microsoft Most Valuable Professional
Re: Update con subquery in SQL2000
Andrea Montanari è online. Ultima attività: 18/07/2008 21.32.49Andrea Montanari
Inserito il: 13 maggio 2008 18.21
contributi / Top Poster / Community manager / www.asql.biz / 905 messaggi dal 27 lug 2005 Istalla Microsoft Silverlight!
salve Marco,
kingmob wrote:
Query:
update tab1 set (a, = (select sum(d * e), sum(f * g) from tab2 where c = h group by h)

Una query di questo tipo è compatibile con SQL2000? Qual'è la sintassi corretta? Ho provato e riprovato ma mi da sempre errore...

SET NOCOUNT ON;
USE tempdb;
GO
CREATE TABLE dbo.tA (
a int,
b int,
c int
);
CREATE TABLE dbo.tB (
d int,
e int,
f int,
g int,
h int
);
GO
INSERT INTO dbo.tA VALUES ( 0, 0, 1 );
INSERT INTO dbo.tA VALUES ( 0, 0, 2 );

INSERT INTO dbo.tB VALUES ( 2, 2, 3, 3, 1 );
INSERT INTO dbo.tB VALUES ( 2, 2, 3, 3, 1 );
INSERT INTO dbo.tB VALUES ( 4, 4, 5, 5, 2 );
GO
UPDATE dbo.tA
SET a = (SELECT SUM(d * e) FROM dbo.tB WHERE h = c GROUP BY h), b = (SELECT SUM(f * g) FROM dbo.tB WHERE h = c GROUP BY h);
SELECT * FROM dbo.tA;
GO
DROP TABLE dbo.tA, dbo.tB;
--<----------
a b c
---------
---------
---------

8 18 1
16 25 2

saluti

Andrea Montanari (Microsoft MVP - SQL Server)
http://www.asql.biz - http://italy.mvps.org

Vai a:

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.


COMMUNITY
ULTIMI MESSAGGI


IN EVIDENZA
MISC
Powered by .db Forums