Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
UNIRE QUERY SENZA UNION (Parte 2)
lunedì 25 settembre 2006 - 14.52
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
gmt
Profilo
| Junior Member
98
messaggi | Data Invio:
lun 25 set 2006 - 14:52
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
Torna su
Stanze Forum
Elenco Threads
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 !