Abfrage mit bedingung?
Hallo.
Ich habe eine Datenbank mit mehreren Tabellen. Nun möchte ich gerne eine Abfrage erstellen.
Tabelle A sieht wie folgt aus:
Name: Mitarbeiter
MitarbeiterID (PS)
Name
Vorname
Titel (FS)
Funknummer
Einsatzort (FS)
Tabelle B sieht so aus:
Name: Einsatzort
EinsatzortID (PS)
Einsatzort
Nun möchte ich gerne eine Abfrage nachdem Einsatzort erstellen. Wie mache ich das?
Dabei möchte ich gerne Name und Titel zusammen fassen.
Die ausgabe soll wie folgt aussehen:
Dr. Mustermann | Max | 123456
Test | Probe | 552255
hier soll wenn möglich eine bedingung zum tragen kommen. Wenn Titel vorhanden; dann Titel+Leerzeichen+Name;sonst Name
Ist soetwas möglich?
(Ich arbeite in access lieber mit den sql befehlen falls das für die lösung besser geeignet ist.)
Ich habe eine Datenbank mit mehreren Tabellen. Nun möchte ich gerne eine Abfrage erstellen.
Tabelle A sieht wie folgt aus:
Name: Mitarbeiter
MitarbeiterID (PS)
Name
Vorname
Titel (FS)
Funknummer
Einsatzort (FS)
Tabelle B sieht so aus:
Name: Einsatzort
EinsatzortID (PS)
Einsatzort
Nun möchte ich gerne eine Abfrage nachdem Einsatzort erstellen. Wie mache ich das?
Dabei möchte ich gerne Name und Titel zusammen fassen.
Die ausgabe soll wie folgt aussehen:
Dr. Mustermann | Max | 123456
Test | Probe | 552255
hier soll wenn möglich eine bedingung zum tragen kommen. Wenn Titel vorhanden; dann Titel+Leerzeichen+Name;sonst Name
Ist soetwas möglich?
(Ich arbeite in access lieber mit den sql befehlen falls das für die lösung besser geeignet ist.)
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 140246
Url: https://administrator.de/contentid/140246
Ausgedruckt am: 08.11.2024 um 15:11 Uhr
5 Kommentare
Neuester Kommentar
Zitat von @DerParte:
Hallo.
Ich habe eine Datenbank mit mehreren Tabellen. Nun möchte ich gerne eine Abfrage erstellen.
Hallo.
Ich habe eine Datenbank mit mehreren Tabellen. Nun möchte ich gerne eine Abfrage erstellen.
Welches DBMS? Welche Abfragesprache, welches Dialekt?
Tabelle A sieht wie folgt aus:
[Tabellendefinition]
Tabelle B sieht so aus:
[Tabellendefinition]
Nun möchte ich gerne eine Abfrage nachdem Einsatzort erstellen. Wie mache ich das?
[Tabellendefinition]
Tabelle B sieht so aus:
[Tabellendefinition]
Nun möchte ich gerne eine Abfrage nachdem Einsatzort erstellen. Wie mache ich das?
SQL99:
SELECT Einsatzort WHERE Einsatzort='SUCHWERT'
oder
SELECT Einsatzort WHERE EinsatzortID='SUCHWERT'
Dabei möchte ich gerne Name und Titel zusammen fassen.
SELECT CONCAT(Titel, Name) ....
oder mit MSSQL
SELECT Titel + + Name ....
hier soll wenn möglich eine bedingung zum tragen kommen. Wenn Titel vorhanden; dann Titel+Leerzeichen+Name;sonst Name
Wenn Titel leer ist, dann steht nur der Name drin. Im Zweifel (wenn sie überhaupt ankommen) am Anfang und am Ende Leerzeichen löschen.Ist soetwas möglich?
(Ich arbeite in access lieber mit den sql befehlen falls das für die lösung besser geeignet ist.)
Keine Ahnung.(Ich arbeite in access lieber mit den sql befehlen falls das für die lösung besser geeignet ist.)
Lg
Matze
Moin DerParte,
kann deine Frage nur teilweise interpretieren.
Versuchte Antwort wäre in etwa [##edit: wenn es denn um Access geht?!? /edit##]:
womit diese Wenn-Titel-vorhanden-dann-sonst-Klamotte abgehandelt wäre.
Was du dagegen mit der "Bedingung" meinst, die als Wort zwar mehrfach erwähnt wird, aber ähnlich substanzlos bleibt wie eine Westerwellesche Aussenpolitik... keine Ahnung.
Ich habe es mal so interpretiert, dass du (wie ich es in der letzten Zeile der WHERE-Clause angedeutet habe) nach bestimmten EinsatzortIDs einschränken willst.
Bei mir in der Skizze '...AND e.EinsatzortID in (11, 22)'.
Könnte ebensogut lauten '....AND e.Einsatzort in ("Leverkusen", "Bielefeld")'.
Auch was denn nun diese Zahl nach dem "Max" von Mustermann bzw. dem "Probe" im 2. Tupel sein soll konnte ich nicht interpretieren.
Grüße
Biber
kann deine Frage nur teilweise interpretieren.
Versuchte Antwort wäre in etwa [##edit: wenn es denn um Access geht?!? /edit##]:
SELECT IIF(m.Titel is null, m.Name, m.Titel & " " & m.Name) as Name, m.vorname, e.Einsatzort
FROM Mitarbeiter m, Einsatzorte e
WHERE m.EinsatzortId = e.einsatzortID
AND e.EinsatzortID in (11, 22);
womit diese Wenn-Titel-vorhanden-dann-sonst-Klamotte abgehandelt wäre.
Was du dagegen mit der "Bedingung" meinst, die als Wort zwar mehrfach erwähnt wird, aber ähnlich substanzlos bleibt wie eine Westerwellesche Aussenpolitik... keine Ahnung.
Ich habe es mal so interpretiert, dass du (wie ich es in der letzten Zeile der WHERE-Clause angedeutet habe) nach bestimmten EinsatzortIDs einschränken willst.
Bei mir in der Skizze '...AND e.EinsatzortID in (11, 22)'.
Könnte ebensogut lauten '....AND e.Einsatzort in ("Leverkusen", "Bielefeld")'.
Auch was denn nun diese Zahl nach dem "Max" von Mustermann bzw. dem "Probe" im 2. Tupel sein soll konnte ich nicht interpretieren.
Grüße
Biber
Moin DerParte,
dann scheinst du jeweils immer nur auf EINEN Einsatzort je Abfrage einschränken zu wollen --> siehe Kommentar von Matze2010
und diese Zahl ist die Funknummer-> also ersetze das "e.Einsatzort" in meiner Gewünschte-Spalten-Beschreibung durch "m.Funknummer".
bzw. wäre dieser "Einsatzort" ja ein Parameter in der Abfrage, wenn der aus einer Dropdownliste kommen soll.
Grüße
Biber
dann scheinst du jeweils immer nur auf EINEN Einsatzort je Abfrage einschränken zu wollen --> siehe Kommentar von Matze2010
und diese Zahl ist die Funknummer-> also ersetze das "e.Einsatzort" in meiner Gewünschte-Spalten-Beschreibung durch "m.Funknummer".
bzw. wäre dieser "Einsatzort" ja ein Parameter in der Abfrage, wenn der aus einer Dropdownliste kommen soll.
Grüße
Biber