Neu und aufgeschmissen^^

Rakeam

Neuer Benutzer
Beiträge
3
Hallo liebe Community,

ich bin ganz neu in der Datenbankwelt und jetzt schon total aufgeschmissen...

Ich versuche mein Problem mal zu schildern:

Parameter A ist mein Ursprung. Dieser soll mit einer Liste abgeglichen werden und sofern ich dort einen "Treffer" lande, zu B umgewandelt werden. Trifft die Abfrage nicht, soll es A bleiben. Nach dieser Abfrage soll eine weitere laufen, welche A (bzw. das nun geänderte B) in einer dritten Tabelle sucht und anschlißend alle dort gefundenen Treffer in eine Tabelle schreibt.

Die Sache mit dem Join bekomme ich auf niedrigem Niveau hin, aber ich glaube das ich damit nicht weit komme^^ Bin ich mit einem Case-Statement auf der richtigen Spur, oder laufe ich gerade komplett in die falsche Richtung?

Vielen Dank schonmal. Ich hoffe man versteht mich ;)

Grüße
Rakeam
 
Werbung:
Das einzige Verständnisproblem habe ich hier...
Parameter A ist mein Ursprung. Dieser soll mit einer Liste abgeglichen werden und sofern ich dort einen "Treffer" lande, zu B umgewandelt werden.
Was meinst du damit?
Du suchst in einer Tabelle nach einem Wert A und wenn du den findest willst du mit Wert B deine dritte Tabelle durchsuchen?
 
Ich habe Wert A, den suche ich in einer zweiten Tabelle (Mit den Werten A + B). Wenn A dann gefunden wird, soll mit dem passenden B weitergesucht werden. Wird A nicht gefunden, soll die Suche mit A weitergehen. Wird in der dritten Tabelle A (oder B) nicht gefunden, sind die Fälle quasi irrelevant (quasi, weil sie an anderer Stelle noch gebraucht werden).

Es ist so:

Ein Patient kommt ins KH. Dann bekommt er eine eindeutige Nummer zugewiesen. Wird er entlassen und wegen der selben Sache wieder aufgenommen, bekommt er wieder eine Nummer, gehört aber zum ersten Aufenthalt. Deshalb müssen diese beiden (Fall)Nummern zusammengeführt werden. Das Ergebnis daraus muss ich mit einer dritten Tabelle abgleichen, ob ich diese Fälle überhaupt verwenden kann (passendes Quartal, passende Station usw.)
 
Dann ist dein Modell müll...
Richtig wäre eine eindeutige ID pro Person und der sind dann die ganzen Fälle zugeordnet... Damit du dann alle Fälle für eine bestimmte Person finden kannst...

Da das Modell aber vorgegeben ist, bräuchte ich ein paar Tabellendefinitionen um das Statement richtig aufzubauen :)
 
Ich habe Wert A, den suche ich in einer zweiten Tabelle (Mit den Werten A + B). Wenn A dann gefunden wird, soll mit dem passenden B weitergesucht werden. Wird A nicht gefunden, soll die Suche mit A weitergehen. Wird in der dritten Tabelle A (oder B) nicht gefunden, sind die Fälle quasi irrelevant (quasi, weil sie an anderer Stelle noch gebraucht werden).
Also mal abgesehen davon das das sehr abenteuerlich klingt, das Modell wirklich nicht richtig erscheint und du an verschiedenen Stellen in Probleme laufen wirst hier erstmal ein Versuch:
Code:
 SELECT    *
FROM    dritter_tabeller
WHERE    zu_durchsuchende_spalte = (
SELECT    isnull(wert_B,@variable_wert_A) AS wert_B_oder_A
FROM    zweite_tabelle
WHERE    wert_A = @variable_wert_A
LIMIT 1
)
 
Ok hast recht, dann müsste man mit EXISTS arbeiten:

Code:
SELECT    *
FROM    dritter_tabeller
WHERE    zu_durchsuchende_spalte = (

SELECT    wert_B AS wert_B_oder_A
FROM    zweite_tabelle
WHERE    wert_A = @variable_wert_A
LIMIT 1
UNION ALL
SELECT    @variable_wert_A AS wert_B_oder_A
WHERE NOT EXISTS (    SELECT    1
                    FROM    zweite_tabelle
                    WHERE    wert_A = @variable_wert_A )

)
 
Werbung:
Hallo und vielen Dank für die Antworten! Ich hatte etwas viel zu tun und konnte deshalb nicht rein schauen :/

Kurz zum Modell: Ich bekomme die Daten so von den Häusern. Dieser Schritt ist notwendig, um eine eindeutige ID herzustellen. Sobald die Abfrage durch ist, ist die letzte Nummer (also C) meine ID, die in allen anderen Dateien gleich ist. Ergo: Ich werde an diesem Teil des Modells nichts ändern können :/

Ich werde heute mal veruchen die Vorschläge umzusetzen und zu verstehen^^ Bisher ist das für mich alles total fremd und ich kann damit nicht wirklich viel anfangen :( Da ich es aber lernen möchte, ist das sicher ein guter Anfang. Ich steige gerne mit schweren Sachen ein ;)

Sobald ich etwas raus habe, werde ich mich wieder melden.

Nochmals vielen Dank für die bisherige Hilfe :)
 
Zurück
Oben