2017-02-01 2 views
1

Ich versuche, die folgende SQL-Abfrage in Tableau zu übersetzen:Translating SQL-Abfrage Tableau

select store1.name, store1.city, store1.order_date 
from store1 
where order_date = (select max(store2.order_date) from store2 
        where store2.name = store1.name 
        and store2.city = store1.city) 

Ich bin ganz neu zu Tableau und kann nicht herausfinden, wie die where-Klausel zu übersetzen, wie es aus ist die Auswahl ein anderer Tisch.

Zum Beispiel angesichts der folgenden Tabellen

Speicher 1:

Name | City  | Order Date 
Andrew | Boston | 23-Aug-16 
Bob | Boston | 31-Jan-17 
Cathy | Boston | 31-Jan-17 
Cathy | San Diego | 19-Jan-17 
Dan | New York | 3-Dec-16

Speicher 2:

Name | City  | Order Date 
Andrew | Boston | 2-Sep-16 
Brandy | Miami  | 4-Feb-17 
Cathy | Boston | 31-Jan-17 
Cathy | Boston | 2-Mar-16 
Dan | New York | 2-Jul-16

Meine Abfrage zurückkehren würde die folgenden von Speicher 1:

Name | City  | Order Date 
Bob | Boston | 31-Jan-17 
Cathy | Boston | 31-Jan-17

Antwort

0

Punkt f oder Punkt würde, dass die SQL-Abfrage in Tableau Benutzerdefinierte SQL Query Umwandlung sein:

SELECT [Store1].[Name], [Store1].[City], [Store1].[Order Date] 
FROM [Store1] 
WHERE [Order Date] = (SELECT MAX([Store2].[Order Date]) FROM [Store2] 
         WHERE [Store2].[Name] = [Store1].[Name] 
         AND [Store2].[City] = [Store1].[City]) 

In der Vorschau werden Sie feststellen, es wird nur Cathy zurück. Aber sobald Sie die SQL-Abfrage am Bestelldatum in Ihre primäre Tabelle aufgenommen haben, sehen Sie Bob und Cathy wie erwartet.

+1

Vielen Dank für den Startpunkt - Ich schaffte es, die benutzerdefinierte Abfrage zurückzugeben Bob und eine einzelne Instanz von cathy (mit dem Datum 31-jan-17) durch geringfügige Änderung Ihrer Lösung und Hinzufügen einer inneren Verknüpfung mit store1 direkt in die Unterabfrage –