Wie kann ich eine Tabelle mit Daten aktualisieren, die von einem Join für sich selbst abgerufen wurden?

7

Ich habe folgende Daten:

%Vor%

Ich möchte den Spaltensektor aktualisieren, wenn er null ist, basierend auf dem Wert von Sektorschlüssel, dh ich möchte, dass Sektor 'A' ist, wenn Sektorschlüssel 1 ist, und 'B', wenn Sektorschlüssel 2 ist.

Ich habe diese Abfrage versucht:

%Vor%

und habe folgende Fehlermeldung erhalten:

  

Die Tabelle 'tbFoo' ist mehrdeutig.

Ich habe versucht, den ersten tbFoo zu aliasieren, aber es scheint keine gültige Syntax zu sein. Ich verstehe nicht, warum SQLServer sich über eine mehrdeutige Benennung beschwert, da ich alle meine Tabellen Aliasing habe.

Ich habe gefunden this thread , und ich habe das Gefühl, dass ich genau das Gleiche mache wie in der uploated-Antwort. Ich habe auch versucht, die Abfrage in der angenommenen Antwort vorgeschlagen:

%Vor%

und dann klagt SQLServer über eine falsche Syntax in der Nähe von 'A'

Irgendwelche Ideen, was passiert, und um das zu beheben? Ich benutze SQLServer 2008.

BEARBEITEN Ich habe die Gesamtdaten meiner Tabelle nicht angezeigt. Ich habe nicht nur zwei Fälle (A und B), sondern einige tausend Fälle. Ein expliziter Fall ist also keine Option

    
Brann 07.04.2009, 13:26
quelle

3 Antworten

22

Verwenden Sie den Alias ​​im ersten Teil Ihrer Aktualisierungsabfrage:

%Vor%

Andernfalls weiß es nicht, welche Instanz der Tabelle aktualisiert werden soll.

    
Joel Coehoorn 07.04.2009, 13:34
quelle
1

Versuchen Sie ein CTE zu verwenden und ändern Sie den Namen des Feldes für Alias:

%Vor%     
CLAUDECINO 07.04.2014 18:56
quelle
0
%Vor%

Sollte funktionieren

    
John Gietzen 07.04.2009 13:33
quelle

Tags und Links