Relation mit Vorrang

26/01/2009 - 10:54 von Fred Aurich | Report spam
Hallo,

ich habe mal eine TSQL Frage.

Wie kann ich eine Relation definieren, die auf einer Abfrage basiert?

Ich habe eine Instandhaltungs-Auftragstabelle, bei der eine Spalte Gewerk
als Schlüssel enthalten ist (A.GEWERK). Weiterhin habe ich eine
Stammdaten-Gewerktabelle, die mir zu diesem Schlüssel Stammdaten liefert.

Mein Problem ist nun, dass in der Stammdaten-Gewerktabelle der Schlüssel
nicht eideutig ist. Es gibt Stammdaten zu einer Gewerk-Nr die vom System
standardmàßig vorgegeben sind und Stammdaten die wir definiert haben. Beide
haben z.B. die Schlüßel-Nr. 77 und unterscheiden sich (nur) durch die Angabe
einer Betriebsnummer (unsere) oder eben NULL in der Spalte G.Betrieb.

Ich benötige nun eine Relation, die mir Stammdaten zum Gewerk zurückgibt.
Wenn eine Betriebsnummer definiert ist, die vom Betrieb. Wenn keine
Betriebsnummer definiert die von den Stammeintràgen. Auf jeden Fall aber
nicht beide (Stamm+Betrieb), wenn (zusàtzlich) ein Betriebsnummer vorhanden
ist!

Schematisch:

SELECT A.NUMMER, G.BEZEICHNUNG
FROM dbo.AUFTRAG A
LEFT OUTER JOIN dbo.GEWERK G ON (G.GEWERK = A.GEWERK)

Hinweis: Es exestieren auch Auftràge ohne Gewerk

Fred.
 

Lesen sie die antworten

#1 Dirk Stegemann
26/01/2009 - 11:45 | Warnen spam
Hallo Fred,

Ich benötige nun eine Relation, die mir Stammdaten zum Gewerk zurückgibt.
Wenn eine Betriebsnummer definiert ist, die vom Betrieb. Wenn keine
Betriebsnummer definiert die von den Stammeintràgen. Auf jeden Fall aber
nicht beide (Stamm+Betrieb), wenn (zusàtzlich) ein Betriebsnummer


vorhanden
ist!



das hört sich für mich nach Case an..

http://msdn.microsoft.com/en-us/lib...81765.aspx

Gruß

Dirk

"Fred Aurich" schrieb im Newsbeitrag
news:
Hallo,

ich habe mal eine TSQL Frage.

Wie kann ich eine Relation definieren, die auf einer Abfrage basiert?

Ich habe eine Instandhaltungs-Auftragstabelle, bei der eine Spalte Gewerk
als Schlüssel enthalten ist (A.GEWERK). Weiterhin habe ich eine
Stammdaten-Gewerktabelle, die mir zu diesem Schlüssel Stammdaten liefert.

Mein Problem ist nun, dass in der Stammdaten-Gewerktabelle der Schlüssel
nicht eideutig ist. Es gibt Stammdaten zu einer Gewerk-Nr die vom System
standardmàßig vorgegeben sind und Stammdaten die wir definiert haben.


Beide
haben z.B. die Schlüßel-Nr. 77 und unterscheiden sich (nur) durch die


Angabe
einer Betriebsnummer (unsere) oder eben NULL in der Spalte G.Betrieb.

Ich benötige nun eine Relation, die mir Stammdaten zum Gewerk zurückgibt.
Wenn eine Betriebsnummer definiert ist, die vom Betrieb. Wenn keine
Betriebsnummer definiert die von den Stammeintràgen. Auf jeden Fall aber
nicht beide (Stamm+Betrieb), wenn (zusàtzlich) ein Betriebsnummer


vorhanden
ist!

Schematisch:

SELECT A.NUMMER, G.BEZEICHNUNG
FROM dbo.AUFTRAG A
LEFT OUTER JOIN dbo.GEWERK G ON (G.GEWERK = A.GEWERK)

Hinweis: Es exestieren auch Auftràge ohne Gewerk

Fred.

Ähnliche fragen