Mein Titel ist ein bisschen zweideutig, aber ich werde versuchen, unten zu klären.Links beitreten mit Logik/Zustand
Ich habe eine Ansicht (A) mit ein paar Joins erstellt. Ich versuche, diese Ansicht mit einer anderen Ansicht zu verbinden (B). Beide Ansichten enthalten ein Jahr-Feld, Firmen-ID, Industrie-ID und einen Produkt-Code, der den Wert I oder U annimmt.
Ansicht B enthält auch die Mitarbeiter-ID, normalerweise gibt es mehrere Mitarbeiter-IDs für jedes Unternehmen ICH WÜRDE. Jede Mitarbeiter-ID könnte einen Produktcode haben, der I, U oder beides ist. Wenn es beides hat, gibt es zwei identische Mitarbeiter-IDs, die durch den Produktcode unterschieden werden.
Jetzt möchte ich Ansicht A auf Jahr, Kunden-ID, Industrie-ID und Produktcode beitreten. ABER, da jede Kundennummer in Sicht B zweimal vorkommen kann (wenn die zugrundeliegenden Mitarbeiter für diesen Kunden sowohl Produktcode I als auch U haben), möchte ich nur einmal beitreten.
Dies ist die Verteilung der Kunden-IDs für Produktcodes:
I und NICHT U: 165'370
U und NICHT I: 45'27
U und I: 48'920
left join [raw].[ViewA] a on a.year=b.year and a.CustomerID=b.CustomerID
and a.IndustryID=b.IndustryID and a.ProductCode ='I'
Dies wird die Verbindung I mit zur Zeit renne, obwohl ich alle Datensätze bin auszuschließen, wenn die CustomerID Produktcode U. der Grund, warum ich möchte nur beitreten einmal pro Kundennummer haben/Year/IndustryID liegt daran, dass ich später einen anderen Wert aus Ansicht A aggregiere. Daher kann dieser Wert nicht zweimal angezeigt werden.
Aktuelles Ergebnis
Year CustomerID IndustyID ProductCode Value
2015 A Z I 50
2015 A Z U NULL
2015 B Z I 40
2016 A Z I 20
2016 B Z U NULL
Was würde ich
Year CustomerID IndustyID ProductCode Value
2015 A Z I 50
2015 A Z U NULL
2015 B Z I 40
2016 A Z I 20
2016 B Z U 30
Viel zu viel Text, viel zu wenig Daten. Ich kann das Problem mit Ihren Daten nicht sehen, daher fällt es mir sehr schwer, Ihnen zu helfen. Überlegen Sie, Ihre Frage zu bearbeiten und Beispieldaten einzugeben, die Ihr Problem veranschaulichen. –
Fügen Sie einige Beispieldaten aus beiden Ansichten hinzu, um die gewünschten Ergebnisse zu erhalten. Dies erklärt mehr als das, was Sie erwähnt haben. –
Hallo. Deine Erklärung ist nicht klar. Sagen Sie, welche Zeilen im gewünschten Ergebnis erscheinen, basierend auf den Zeilen, die in den Eingaben erscheinen. Geben Sie eine ausführbare Beispieleingabe, DDL, Ansichten, falls erforderlich, und die gewünschte Ausgabe ein. Auch für Ihre aktuelle Ausgabe. Lesen und handeln Sie auf [mcve].Was meinst du mit "Ich möchte der Ansicht A beitreten"? Mit B? Was bedeutet "Ich möchte nur einmal beitreten"? Und du sagst eindeutig nicht *, dass du A auf B auf Spalten einschließlich Produkt verbindest; du meinst etwas * wie * das - was * meinst du? Sie schreiben nicht wirklich, was Sie meinen oder klar. – philipxy