Hallo Leute,
Ich habe da Mal ein Problemchen.
Kann man eigentlich drei unterschiedliche Abfragen in einer Abfrage zusammen führen, und wenn ja wie wird das den gemacht.
Denn ich möchte aus der zusammengeführte Abfrage ein Formular machen.
Gruß Uwe01
Hallo,
was verstehst Du unter "unterschiedlich"?
Mit "Union" können Werte (Datensätze) aus verschiedenen Tabellen zusammengeführt werden, wobei die Select-Liste bei allen Tabellen überein stimmen muss. Eine Union-Abfrage ist nicht aktualisierbar.
Solche Vorhaben deuten auf nicht stimmiges Tabellenmodell hin.
Zitatzusammen führen
Irgendwie geht das immer. Ein CROSS JOIN leistet das zuverlässig:
SELECT A.*, B.*, C.*
FROM A, B, C
Wenn das Ergebnis aber auch inhaltlich Sinn machen soll, müsste man die Strukturen der Abfragen wie auch die gewünschte Struktur der Zielabfrage kennen, dann meist auch mit Datenunterlegung.
Rate mal, was dazu notwendig wäre ...
Hallo,
@DF6GL danke für deine Antwort aber ich weiß nicht wie Union bei Abfragen funktioniert, vielleicht kannst du es etwas genauer beschreiben.
@ebs17 Danke dir auch für deine Antwort aber was ist den jetzt schon wieder Cross Join?
Ich werde Mal versuchen am WE eine Muster DB einzustellen zur besseren Übersicht ☺.
Gruß uwe01
Hallo,
ZitatIch werde Mal versuchen am WE eine Muster DB einzustellen ...
ja, das mach mal. Aus Deinen bisherigen Beiträgen lässt sich kein Lösungsvorschlag ableiten.
Man müsste mindestens mal die 3 Abfragen (SQL) sehen.
ZitatBitte um Verständliche Antworten, bin noch Einsteiger !!!
Ein gegebenes Stichwort kann man schnell mal eigenrecherchieren (Internet, Bücher) und einen Tipp auch einfach mal ausprobieren, damit man vom Sehen dann erkennen kann, worüber man nachdenken kann.
So würden es dann auch Fortgeschrittene machen (statt in der Hängematte abzuwarten) ...
Hallo Leute,
ich soll in der Firma eine DB für Flurfahrzeuge erstellen, und da habe ich jetzt ein Problem die drei
Abfragen in einer Abfrage erstellen.
Warum?
Ich will Formulare erstellen das wenn zb eine Batterie erneuert wird setzt der Mechaniker die alte Batterie als Verschrottet und gibt die neue ein. Und es soll über der Internen Nummer gesucht werden. Und damit man sich auch eine Excel Liste erstellen kann benötige ich eine Komplette Abfrage.
Ich hoffe das Vorhaben so einiger maßen erklärt zu haben. Die DB soll natürlich auch noch andere
Tabellen usw erhalten.
Gruß Uwe01
Hallo,
Deine Ausführungen sind immer noch wenig hilfreich.
Was soll denn die komplette Abfrage beinhalten?
Und wozu wird hier noch Excel benötigt ?
Für eine Liste braucht man doch kein Excel.
PS:
Warum in aller Welt nennt man seine DB Test ?
Könnte man die nicht einfach Flurfahrzeuge nennen ?
Test erfordert jedes mal ein Umbenennen in einen vernünftigen Namen wenn man die DB herunter läd.
Hallo Mzkimu,
Die komplette Abfrage soll alles das bieten was die drei Abfragen bieten. Der Sinn ist das man eine gesamte Übersicht über die Geräte hat. Wenn man nach interner Nummer sucht soll halt alles angezeigt werden was dazu gehört.
Denn Export nach Excel möchte ich nur machen für den Fall daß der Monteur sich eine Excel Tabelle machen möchte.
Und den Namen Test habe ich jetzt nur so gewählt 😀
@ebs17
Ich habe auch schon etliches versucht, aber ohne Erfolg.
Gruß Uwe01
Hallo,
erstelle doch einfach mal eine Abfrage mit den 3 Tabellen und schaue mal ob das passt.
Da Du Beziehungen angelegt hast, werden diese als Vereknüpfungen übernommen.
ZitatUnd den Namen Test habe ich jetzt nur so gewählt
eben, nicht einfach so wählen, sondern einen sinnvollen Namen geben.
Hallo Mzkimu,
Das habe ich schon probiert, hat aber auch nicht zum Erfolg geführt. Entweder hatte ich die Geräte mehrfach in der Abfrage oder ich hatte nur die Spaltennamen in der Abfrage.
Hallo,
die Fremdschlüsselfelder für Ladestation und Batterie in der Gerätetabelle müssen einen Eintrag haben, die dürfen nicht leer sein.
Hallo,
die Frage zur Abfrage sollte dieses SQL-Statement befriedigen:
ZitatSELECT [FFZ Gerät].*, [FFZ Batterie].*, [FFZ Lade].*
FROM [FFZ Lade] RIGHT JOIN ([FFZ Batterie] INNER JOIN [FFZ Gerät] ON [FFZ Batterie].BatID = [FFZ Gerät].BadID) ON [FFZ Lade].LadID = [FFZ Gerät].LadID;
(zusammengeklickt im Abfrageentwurf)
Die Beziehungstyp zwischen FZZLade und FFZGerät sollte von 3 (RIGHT JOIN) auf 1 (INNER JOIN) geändert werden.
Zudem sind Sonder- und Leerzeichen in Namen dringend zu vermeiden.
Ob die Erfassung der Verlaufsdaten (Batterie verkauft, verschrottet) in der Stammdatentabelle sinnvoll/richtig ist, wage ich zunächst zu bezweifeln. Hier gehört eine weitere Status- (Historien-)Tabelle eingebaut und eine passende Ablaufsteuerung mit Formularen erstellt, sofern nicht nur eine statische Aussage über den aktuellen Zustand eines Gerätes das Ziel ist.
Solange die Tabellen-Grundstruktur (Es sind nur 3 Tabellen)
Hallo,
@MzKlMu
ich weiß auch nicht warum die Anzeige der Fremdschlüssel leer ist, da ja die Tabelle Daten hat?
@DF6GL
habe dein Hinweis mit den Beziehungen bereinigt, und mal eine Abfrage nach deinem SQL erstellt.
Da habe ich auch das Problem das da kein Eintrag ist.
Gruß Uwe01
Hallo,
lad mal die Db (komprimiert/repariert und gezippt, evtl. datenreduziert) hier hoch...
Ansonsten erstell ein Formular mit Datenherkunft zu Tabelle "FZZ Gerät" und bau für die Anzeige der Fremdschlüssel jeweils ein gebundenes Kombifeld ("BadID", "LadID" )ein, das seine Daten aus "FFZ Batterie", bzw. "FFZ Lade" bezieht.
"BadID", gebunden an [FZZ Gerät].BadID:
Select BadID, Bezeichnung from [FFZ Batterie]
"LadID", gebunden an [FZZ Gerät].LadID:
Select LadID, Bezeichnung from [FFZ Lade]
Zitatich weiß auch nicht warum die Anzeige der Fremdschlüssel leer ist
Da wird wohl jemand nichts eingetragen haben ::)
Wenn die Daten nach Excel exportiert werden sollen, muss bei beiden Beziehungen der Beziehungstyp auf "alle Datensätze aus FZZ Geräte und nur diejenigen aus FZZ xxx ..." eingestellt werden (,falls die Fremdschlüsselfelder leer sein dürfen).
Hallo,
die Fremdschlüssel müssen zwingend einen passenden Wert enthalten, sond machen ja die Felder keinen Sinn.
Das Fahrzeug muss einer Ladestation zugeordnet sein und muss eine Batterie haben. Und die Werte tragen sich nicht automatisch ein, die musst Du eintragen.
PS:
Da solltest Dich dringend mit den Grundlagen zu Access vertraut machen. Was wir da im Moment behandeln ist absolutes Basis Wissen, was für Access unerlässlich ist.
@MzKIMu,
@DF6GL,
@ebs17,
danke euch für eure Antworten habe es dadurch hin bekommen. Habe die drei Tabellen in Beziehungen gesetzt und dann hat es auch geklappt.
Danke
Zitat von: uwe01 am September 11, 2019, 20:21:13
@MzKIMu,
@DF6GL,
@ebs17,
danke euch für eure Antworten habe es dadurch hin bekommen. Habe die drei Tabellen in Beziehungen gesetzt und dann hat es auch geklappt.
Danke