Difficulty: Moderate

Una matrice di relazione è una griglia-come la rappresentazione dei dati. È una fila di etichette, una colonna di etichette, e, in una griglia, i dati relativi ad entrambi i riga e colonna. Matrix relazioni sono chiamati anche incrociati relazioni.

Una matrice di relazione è un gruppo di righe di dati, un gruppo di dati per le colonne, un gruppo di dati cross-prodotto e di un gruppo di dati, come il valore di cross-prodotto. Il cross-gruppo di prodotti rappresenta tutte le possibili combinazioni di gruppi di riga e colonna.

Diamo un'occhiata a un esempio. Si supponga che avete una tabella denominata Inv_summary. Essa ha tre colonne: Inv_date, Inv_status e Inv_value. Ora, si desidera generare un rapporto che mostra il valore totale di aprire e chiudere le fatture per ogni mese, per esempio, come qui di seguito.

MESE OPEN CLOSE

-------- ------------ ------------

Gen-07 20 19

Feb-07 0 153

Mar-07 18 56

Apr-07 43 0

Mag-07 93 0

Giu-07 79 0

Lug-07 112 0

Questi sono i passi per generare la relazione.

  1. Creare una tabella Inv_summary.
  2. Crea tabella Inv_summary (Inv_date data, Inv_status VARCHAR2 (1), Inv_value numero);

  3. Inserisci alcuni dati in tabella Inv_summary.
  4. Inserire in Inv_summary valori ('01-gen-07 ',' O ', 20,00);
    Inserire in Inv_summary valori ('01-gen-07 ',' C ', 12,00);
    Inserire in Inv_summary valori (10-gen-07 ',' C ', 7,00);
    Inserire in Inv_summary valori ('05-feb-07 ',' C ', 153,00);
    Inserire in Inv_summary valori ('12-mar-07 ',' C ', 48,00);
    Inserire in Inv_summary valori (15-mar-07 ',' C ', 8,00);
    Inserire in Inv_summary valori ('23-mar-07 ',' O ', 18,00);
    Inserire in Inv_summary valori ('20-apr-07 ',' O ', 43,00);
    Inserire in Inv_summary valori ('01-mag-07 ',' O ', 61,00);
    Inserire in Inv_summary valori ('01-mag-07 ',' O ', 32,00);
    Inserire in Inv_summary valori ('01-giu-07 ',' O ', 18,00);
    Inserire in Inv_summary valori ('01-giu-07 ',' O ', 33,00);
    Inserire in Inv_summary valori ('01-giu-07 ',' O ', 28,00);
    Inserire in Inv_summary valori ('01-lug-07 ',' O ', 20,00);
    Inserire in Inv_summary valori ('01-lug-07 ',' O ', 24,00);
    Inserire in Inv_summary valori ('01-lug-07 ',' O ', 68,00);
    Impegni;

  5. Eseguire il seguente comando sql per generare il rapporto.
  6. SELECT to_char (to_date (to_char (inv_date, 'lun-aa'), 'lun-aa'), 'lun-aa') Mese,
    somma (decodificare (inv_status, 'O', inv_value, 0)) Apri,
    somma (decodificare (inv_status, 'C', inv_value, 0)) Chiudi
    DA Inv_summary
    GRUPPO DA to_date (to_char (inv_date, 'lun-aa'), 'lun-aa')
    ORDER BY to_date (to_char (inv_date, 'lun-aa'), 'lun-aa')

    MESE OPEN CLOSE

    --------- ------------ ------------

    Gen-07 20 19

    Feb-07 0 153

    Mar-07 18 56

    Apr-07 43 0

    Mag-07 93 0

    Giu-07 79 0

    Lug-07 112 0

    Nel precedente esempio, abbiamo impostato in modo che il gruppo attraversa invoice_status e il mese del gruppo scende, formando una griglia che mostra il valore totale delle fatture. La parte fondamentale di cui sopra nel comando SQL è DECODE funzione. Converte file in colonne selezionando la Inv_status valore della colonna. È possibile scrivere una matrice di relazione con le query singole o multiple. Una singola query relazione è generalmente più efficace di un più query.

Average rating: