UNIRE QUERY SENZA UNION (Parte 2)

lunedì 25 settembre 2006 - 14.52

gmt Profilo | Junior Member

Salve,

parliamo di SQL Server 2000/2005

trovate un thread risolto (con il titolo simile, per vedere la cronostoria) ma a metà visto che è sorta questa nuova esigenza..

non ho avuto problemi con la FULL OUTER JOIN, finchè non ho avuto necessita di collegare una terza tabella..
la relazione è su 3 campi (DATA, ANOMALIA, TIPO) ho messo un 1=1 xchè faccio la query da programma.
La terza tabella la relaziono con la seconda (o con la prima) ma se nella seconda (o prima) un record non lo trova (della relazione) moltiplica i record.

31/03/2005 02-Rigidità di utilizzo NUM 0 0 0 0 6 0,43
31/03/2005 02-Rigidità di utilizzo NUM 3 0,9 0 0 0 0
31/03/2005 02-Rigidità di utilizzo IMP 58913 0,69 0 0 0 0
31/03/2005 02-Rigidità di utilizzo IMP 0 0 0 0 151472 0,93

riporto anche la query

SELECT COALESCE (tmp_confronto_admin1.DATA, tmp_confronto_admin2.DATA, tmp_confronto_admin3.DATA) AS DATA,
COALESCE (tmp_confronto_admin1.ANOMALIA, tmp_confronto_admin2.ANOMALIA, tmp_confronto_admin3.ANOMALIA) AS ANOMALIA,
COALESCE (tmp_confronto_admin1.TIPO, tmp_confronto_admin2.TIPO, tmp_confronto_admin3.TIPO) AS TIPO, ISNULL(tmp_confronto_admin1.TOTALI,
0) AS [TOTALI (1)], ISNULL(tmp_confronto_admin1.[%], 0) AS [% (1)], ISNULL(tmp_confronto_admin2.TOTALI, 0) AS [TOTALI (2)],
ISNULL(tmp_confronto_admin2.[%], 0) AS [% (2)], ISNULL(tmp_confronto_admin3.TOTALI, 0) AS [TOTALI (3)], ISNULL(tmp_confronto_admin3.[%], 0)
AS [% (3)]
FROM tmp_confronto_admin1 FULL OUTER JOIN
tmp_confronto_admin2 ON 1 = 1 AND tmp_confronto_admin1.DATA = tmp_confronto_admin2.DATA AND
tmp_confronto_admin1.ANOMALIA = tmp_confronto_admin2.ANOMALIA AND
tmp_confronto_admin1.TIPO = tmp_confronto_admin2.TIPO FULL OUTER JOIN
tmp_confronto_admin3 ON 1 = 1 AND tmp_confronto_admin2.DATA = tmp_confronto_admin3.DATA AND
tmp_confronto_admin2.ANOMALIA = tmp_confronto_admin3.ANOMALIA AND tmp_confronto_admin2.TIPO = tmp_confronto_admin3.TIPO
ORDER BY tmp_confronto_admin1.ANOMALIA

spero abbia illustrato bene il problema.. sto cercando di risolvere da solo ma ho difficoltà..
Premetto che mi creo le tabelle tmp_confronto_admin da progamma e poi creo la query (sopra) sempre da programma..

Grazie
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5