2014-11-13 15 views
6

Ho due origini dati in tableau (A e B). La relazione è 1: n. Tabella A (tabella principale) con ID colonne (chiave primaria), campo 1, campo 2 .... Tabella B con ID colonne (non PK), Campo X, Campo Y.Connetti due sorgenti di dati insieme senza Join in Tableau

Voglio usare la tabella B per filtrare per Campo X e Campo Y e quindi in un foglio relativo dati di tabella dalla tabella A con il filtro che in SQL sarebbe equivalente a WHERE A.ID IN (SELECT B.ID FROM TableB B) dove la tabella B sarebbe già stata filtrata dai valori di Field X e Field Y.

Dopo alcune ricerche ho trovato due opzioni che non convincermi:

Opzione 1: Utilizzare un join interno comune tra le due tabelle e quindi utilizzare le funzioni di aggregazione come AVG e COUNT DISTINCT sulle misure della tabella A per evitare la duplicazione.

Opzione 2: Utilizzare l'SQL personalizzato nella tabella A in base a un parametro inviato da Tableau e filtrare la tabella A a livello di database.

L'opzione migliore sarebbe quella di avere un join tra le fonti nella seguente struttura

SELEZIONA A. * FROM tableA A INNER JOIN (SELECT ID DISTINTO DA TABELLA B DOVE Campo X IN (Selezione dinamica da Tableau) E Campo Y IN (selezione dinamica da tableau)) B ON A.ID = B.ID

È possibile?

Grazie !!

risposta

4

C'è una terza opzione, che può essere sufficiente a seconda delle dimensioni delle tabelle. Utilizzare la miscelazione dei dati del tableau. Creare un collegamento tra le 2 tabelle (Dati -> Modifica relazioni), utilizzando il campo Id.

Trascinare ora le informazioni desiderate dalla tabella A al foglio di lavoro, quindi trascinare il campo X e il campo Y su Filtro. Ecco.

Se i tavoli sono troppo grandi (in particolare la tabella B), è possibile unirsi prima. Ma ciò potrebbe causare il problema delle voci duplicate (se ci sono più di una corrispondenza di ciascuna voce in A su B). Un join a sinistra è più consigliabile (e senza filtri)

+0

Sfortunatamente questo non mi aiuterà poiché la relazione 1: n duplicherà le righe dalla Tabella A –

+0

Solo nel secondo metodo. Sulla fusione dei dati non avrà quel problema – Inox

+0

Ho fatto controlli e fa quello che dici. Grazie –