Relation mit Abfrage

27/01/2009 - 11:20 von Fred Aurich | Report spam
Hallo,

ich habe mein Problem mal auf Basics zurückgeführt. Dann stellt es sich
folgendermaßen dar:

Ich habe zwei Tabellen. Eine Bewegungstabelle B und eine Stammtabelle S.

Die Bewegungstabelle B hat eine Spalte SNR = Stamm-Nummer. Diese Nummer
verweist relativ auf eine Zeile in der Stammtabelle.

Die Stammtabelle S hat drei Spalten.

Spalte1 = STD = Standard. In ihr ist vermerkt, ob ein Eintrag standardmàßig
vorhanden ist, oder ob er von einem Benutzer (Kürzel) angelegt wurde.
Spalte2 = SNR = Stamm-Nummer.
Spalte3 = BEZ = Bezeichnung des Eintrags.

Ich möchte nun von der Bewegungstabelle ausgehend, über eine Relation, alle
zugeordneten StammDatenbezeichnungen, angezeigt bekommen (einfach:-)).
Unter dem Aspekt, dass wenn ein Benutzereintrag vorhanden ist, die
Benutzerbezeichnung ansonsten die Standardbezeichnung angezeigt wird
(schwer(er) :-( ).

Da Beispiele anschaulicher sind...

Bewegungstabelle B
SNR
3
4
5

Stammtabelle S
STD SNR BEZ
NULL 3 Drei
NULL 4 Vier
'AAA' 4 BenutzerVier
NULL 5 Fuenf
'BBB' 5 BenutzerFuenf

Ergebnis soll sein:
SNR BEZ
3 drei
4 BenutzerVier
5 BenutzerFuenf

Dieses Problem (benutzerdefiniert = Vorrang) müßte doch schon öfter
aufgetreten sein.

Fred
 

Lesen sie die antworten

#1 Jürgen Volke
27/01/2009 - 11:54 | Warnen spam
Hallo Fred

ich habe mein Problem mal auf Basics zurückgeführt. Dann stellt es sich
folgendermaßen dar:

Ich habe zwei Tabellen. Eine Bewegungstabelle B und eine Stammtabelle S.

Die Bewegungstabelle B hat eine Spalte SNR = Stamm-Nummer. Diese Nummer
verweist relativ auf eine Zeile in der Stammtabelle.

Die Stammtabelle S hat drei Spalten.

Spalte1 = STD = Standard. In ihr ist vermerkt, ob ein Eintrag
standardmàßig
vorhanden ist, oder ob er von einem Benutzer (Kürzel) angelegt wurde.
Spalte2 = SNR = Stamm-Nummer.
Spalte3 = BEZ = Bezeichnung des Eintrags.

Ich möchte nun von der Bewegungstabelle ausgehend, über eine Relation,
alle
zugeordneten StammDatenbezeichnungen, angezeigt bekommen (einfach:-)).
Unter dem Aspekt, dass wenn ein Benutzereintrag vorhanden ist, die
Benutzerbezeichnung ansonsten die Standardbezeichnung angezeigt wird
(schwer(er) :-( ).

Da Beispiele anschaulicher sind...

Bewegungstabelle B
SNR
3
4
5

Stammtabelle S
STD SNR BEZ
NULL 3 Drei
NULL 4 Vier
'AAA' 4 BenutzerVier
NULL 5 Fuenf
'BBB' 5 BenutzerFuenf

Ergebnis soll sein:
SNR BEZ
3 drei
4 BenutzerVier
5 BenutzerFuenf

Dieses Problem (benutzerdefiniert = Vorrang) müßte doch schon öfter
aufgetreten sein.



etwa:

SELECT * FROM Bewegung as B inner Join
(SELECT SNR,Bez FROM Tabelle AS S1
WHERE (STD IS NOT NULL AND SNR = B.SNR) OR
(STD IS NULL AND SNR = B.SNR) AND (NOT EXISTS
(SELECT SNR FROM Tabelle AS S2
WHERE (STD IS NOT NULL) AND (S2.SNR = B.SNR)))) X
ON X.SNR = B.SNR

ungetestet

HTH Jürgen

Ähnliche fragen