Hallo @ all,
ich habe folgendes Problem. Ich bekomme einen Datenexport als *.csv Datei zur Verfügung gestellt. Diesen verarbeite ich in Access.
In dieser Tabelle werden die Systeme unter einer
SystemID geführt. Jedes System hat mehrere Komponenten. Jede Komponente hat eine ID. Jedes Gerät hat eine GeräteID.
Beispiel:
System ID | KomponentenID | Gerätenamen | GeräteID | Typ |
11111111 | 1234456 | | 3412568 | Monitor |
11111111 | 3245632 | Computer 234 | 7823467 | Computer |
11111111 | 4350125 | | 5634543 | Drucker |
11111111 | 4504304 | | 6023462 | Telefon |
11111111 | 3450520 | | 4560234 | Laptop |
Ist es mit
einer Abfrage möglich, anhand der
Geräte ID (z.b. des Drucker)
über die SystemID, den dazugehörigen
Gerätenamen zu erhalten? Also ich suche nach der
563453 und sollte ,,
Computer 234" zurückerhalten.
Dieser Gerätename steht leider nicht immer in jeder SystemID Zeile, kann mal bei Computer, kann auch mal beim Monitor stehen, oder beim Telefon.
Gruß
Werner
Wenn sich der Gerätename mit der System ID als Primärschlüssel in einer eigenen Tabelle befindet, ist die Abfrage sehr leicht und gelingt Dir wahrscheinlich selbst ganz einfach.
Hallo Werner,
Unabhängig des von Eberhard angesprochenen Datenmodells, bringt die
folgende Abfrage das gewünschte Ergebnis mit der gezeigten Tabellenstruktur.
SELECT S.Geraetenamen
FROM Systeme AS S
WHERE S.SystemID =
(SELECT G.SystemID
FROM Systeme AS G
WHERE G.GeraeteID=5634543)
AND S.Geraetenamen Is Not Null
gruss ekkehard
@Eberhard
ZitatWenn sich der Gerätename mit der System ID als Primärschlüssel in einer eigenen Tabelle befindet
Müsste es nicht
Zitat... als Fremdschlüssel ...
heissen?
:D *wunderbar*
... da wäre ich im Leben nicht drauf gekommen!
DANKE
@ekkehard: In der Tabelle mit den Geräten (Computern) als Primärschlüssel und in der gezeigten Komponenten-Geräte-Tabelle als Fremdschlüssel, oder man verwendet wie vielfach üblich entsprechende Surrogatschlüssel.
Hallo Eberhard,
Hm, entweder "klickt" es bei mir mal wieder nicht, oder wir interpretieren
die Struktur unterschiedlich, die allerdings aus der Beschreibung auch
nicht hervorgeht.
ZitatDiesen verarbeite ich in Access.
Das "Wie" bleibt offen :(
Wo es bei mir hakt ist, - wie kann der Gerätename "in einer eigenen
Tabelle" die SystemID als PK haben?
Bei mir kämen die gezeigten DS aus einer n:m-Tabelle in denen die
Tabellen "Systeme", "Komponenten" und "Geräte" zusammen kommen,
und da wären die IDs doch FKs.
gruss ekkehard
ZitatIst es mit einer Abfrage möglich, anhand der Geräte ID (z.b. des Drucker) über die SystemID, den dazugehörigen Gerätenamen zu erhalten? Also ich suche nach der 563453 und sollte ,,Computer 234" zurückerhalten.
Ich interpretiere das so, dass die SystemID die ID zu ,,Computer 234" ist. Daher würde ich den Computer in eine weitere Tabelle auslagern. Da hatte ich vorab an eine 1:n-Beziehung gedacht, m:n ist aber besser, wenn Geräte von Computern getauscht werden.
Wie gesagt: Interpretation, findet im eigenen Kopf ab.
Für eine gescheite Abfrage lässt man sich vorher das Beziehungsbild zeigen, dass man auf Basis von Kenntnis formulieren kann und Ratereien denen überlässt, die Spaß damit haben.
@Eberhard
Hast ja Recht. Aber du kennst mich doch; - ich hau halt manchmal
solche Schnellschüsse raus, - ohne viel zu denken :(
gruss ekkehard