Consigli utilizzando la tabella pivot in Oracle

ho bisogno di un rapporto e dovrei usare la tabella pivot per questo.Report sarà raggruppato per categorie .Non è utile usare case quando istruzione perché ci sono molte categorie.può pensare a Northwind Database come campione e Tutte le categorie saranno mostrate come colonne e Report mostrerà la preferenza dei clienti tra le Categorie. Non conosco un’altra soluzione e ho visto esempi come stored procedure in Internet per Sql Server. Conosce una soluzione tranne che per l’utilizzo del caso quando?

Grazie

Una volta ottenuto Oracle 11G, è disponibile una funzione PIVOT integrata . Prima di ciò, si è limitati a utilizzare le espressioni CASE (o DECODE). Ho un articolo su come automatizzare farlo sul mio blog.

È doloroso eseguire swap riga / colonna in SQL. Ogni riga che vuoi trasformare in una colonna, devi chiedere esplicitamente. Quindi se hai molte categorie, la tua query sarà molto lunga e cambierà ogni volta che aggiungi / rimuovi / cambi una categoria (questo è probabilmente il metodo CASE che stai citando). Puoi scrivere una stored procedure per generare quella che genererà quella query per te (o altrimenti build il set di risultati che vuoi), ma onestamente, in questo modo giace la follia (e probabilmente la prestazione abissale).

Prendi i dati come file, come sicuramente SQL vuole dargli, e poi fai convertire la tua app in colonne. Sarà molto più facile che forzare SQL a fare cose che non vuole fare.

È ansible utilizzare Oracle Data Cartridges ( http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14289/dciwhatis.htm ) per produrre tabelle pivot in modo più efficiente rispetto al caso / quando, ma si avverte che non è facile roba, e ho trovato la documentazione piuttosto scarsa in alcuni punti.

Uso gli strumenti di reporting per produrre report, aiuta a mantenere le viste e le query pulite e senza formattazione. Di solito gli utenti chiedono Excel e Excel è un ottimo strumento di reportistica di per sé. Excel ha molti modi per importare i dati, ma suggerisco XML come input perché puoi aprirlo come una normale tabella di Excel.

  1. Usa Excel per aprire il file XML con dati di esempio
  2. Seleziona la tabella e fai clic su “Inserisci pivot”
  3. Aggiungi la formattazione e salva questo file come modello

Excel memorizza il percorso del file XML di dati e devi semplicemente sostituire i dati per aggiornare il rapporto. Ci sono molti altri modi, io uso l’applicazione JAVA sul server web per unire modello Excel e output SQL. Questo codice è gratuito e open source ma non sarà di aiuto per gli sviluppatori non JAVA https://github.com/jbaliuka/x4j-analytic Ci sono molti altri strumenti di reporting per produrre report “professionali”.