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
Query access in SQL
lunedì 20 marzo 2006 - 10.41
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
ciccio81
Profilo
| Newbie
35
messaggi | Data Invio:
lun 20 mar 2006 - 10:41
Ciao a tutti, domanda un pochino difficile.
Devo riportare un report che è gia stato fatto su un database access su uno oracle.
Il problema è che in access per la query è stata utilizzata la funzione transform ..... pivot, come faccio a farla in sql per oracle? qulacuno mi aiuta o sa dove posso reperire informazioni?
Grazie.
La query è circa cosi:
TRANSFORM Sum(CampiConcGiorn.Netto) AS produzione
SELECT Concessioni.Concessione, Concessioni.Operatore, Year([Data]) AS ANNO, Sum([PRODUZIONE]) AS TOTALE
FROM Concessioni INNER JOIN ((Campi INNER JOIN CampiConcess ON Campi.IdCampo = CampiConcess.IdCampo) INNER JOIN CampiConcGiorn ON Campi.IdCampo = CampiConcGiorn.IdCampo) ON (Concessioni.IdConcessione = CampiConcGiorn.IdConcessione) AND (Concessioni.IdConcessione = CampiConcess.IdConcessione)
WHERE (((Month([Data]))<>Month(Now())) AND ((CampiConcGiorn.Operatore)="spi"))
GROUP BY Concessioni.Concessione, Concessioni.Operatore, Year([Data]), Concessioni.Operatore
PIVOT Month([Data]) In (1,2,3,4,5,6,7,8,9,10,11,12);
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
lun 20 mar 2006 - 11:03
>Devo riportare un report che è gia stato fatto su un database
>access su uno oracle.
>
>Il problema è che in access per la query è stata utilizzata la
>funzione transform ..... pivot, come faccio a farla in sql per
>oracle? qulacuno mi aiuta o sa dove posso reperire informazioni?
Ciao ciccio81,
ti preannuncio che non conosco Oracle, ma da quel poco che ho visto con Google questo DBMS non supporta degli operatori nativi per generare query cross-tab.
Lo stesso problema era presente nelle edizioni di SQL Server antecedenti alla versione 2005 ed in questi casi si utilizzava una tecnica basata sulla funzione di aggregazione MAX() e la funzione CASE.
Dato che il numero di colonne della tua query è statico (coincide con i 12 mesi dell'anno) non dovresti avere alcun problema a riprodurla con la tecnica che ti ho appena segnalato.
Per un esempio ti segnalo il seguente link:
http://www.adp-gmbh.ch/ora/sql/examples/pivot.html
>Grazie.
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
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 !