Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Eine Abfrage mit mehreren Tabellen: Daten aus allen Tabellen anzeigen

Begonnen von Lolek123, September 26, 2019, 16:45:19

⏪ vorheriges - nächstes ⏩

Lolek123

Hallo,

ich google mir schon seit zwei Tagen ein Wolf und finde keine richtige Lösung. Vllt. fehlt mir auch nur der richtige Ansatz.

Ich bastel gerade an einer Seitenzahlenlösung für diverse Drucker. Dazu habe ich mehrere Tabellen:

Drucker in Betrieb
Seitenzahlen April
Seitenzahlen Mai
...
...

Alle Tabellen haben das Feld "Hostname" und dies ist auch Beziehungstechnisch in der Abfrage hinterlegt. Des Weiteren haben die "Seitenzahlen-Tabellen" das Feld Service in dem so etwas steht wie "Gedruckte Mono-Seiten" (SNMP Abfragen). Dieses Feld ist auch unter den "Seitenzahlen-Tabellen" in Beziehung gesetzt.

Rauskommen soll eine Tabelle mit dem Hostnamen und "Mono-Seiten" für April, Mai, Juni etc. - das klappt auch soweit gut nur sind natürlich im August neue Drucker hinzugekommen, die natürlich nicht angezeigt werden, da sie in den anderen "Seitenzahlen-Tabellen" nicht vorhanden sind.

Hier meine SQL Abfrage

SELECT [Drucker in Betrieb].Hostname, [Drucker in Betrieb].[Objekt-ID], [Drucker in Betrieb].Niederlassung, [Drucker in Betrieb].Raum, [2019-04-Anfang].Service, [2019-04-Anfang].Seitenzahl AS [Seitenzahlen-Anfang], [2019-04-April].Seitenzahl AS [Seitenzahlen-April], [2019-08-August].Seitenzahlen AS [Seitenzahlen-August] INTO Seitenzahlen
FROM [Drucker in Betrieb] INNER JOIN ([2019-04-Anfang] INNER JOIN ([2019-04-April] INNER JOIN ([2019-05-Mai] INNER JOIN ([2019-06-Juni] INNER JOIN ([2019-07-Juli] INNER JOIN [2019-08-August] ON [2019-07-Juli].Service = [2019-08-August].Service) ON [2019-06-Juni].Service = [2019-07-Juli].Service) ON [2019-05-Mai].Service = [2019-06-Juni].Service) ON [2019-04-April].Service = [2019-05-Mai].Service) ON [2019-04-Anfang].Service = [2019-04-April].Service) ON ([Drucker in Betrieb].Hostname = [2019-04-Anfang].Drucker) AND ([Drucker in Betrieb].Hostname = [2019-04-April].Drucker) AND ([Drucker in Betrieb].Hostname = [2019-05-Mai].Drucker) AND ([Drucker in Betrieb].Hostname = [2019-06-Juni].Drucker) AND ([Drucker in Betrieb].Hostname = [2019-07-Juli].Drucker) AND ([Drucker in Betrieb].Hostname = [2019-08-August].Drucker);


Ich habe auch jeweils mal die Verknüpfungseigenschaften bearbeitet, aber da ging dann garnichts mehr. Hat jemand evtl. eine einfache Lösung oder ist meine "Datenbasis" schon krumm.

Danke für Eure Hilfe
Marcus

DF6GL

Hallo,


oder ist meine "Datenbasis" schon krumm.

Das würde ich nach Ansehen des SQL-Strings unterschreiben wollen...


Pro Monat eine Tabelle zu erstellen und diesen Tabellenberg dann mit einer weiteren Tabelle in Beziehung setzen zu wollen, ist ein db-technisches NoGo.

Das Tabellenkonzept muss überarbeitet werden. Alle "Datums"-Tabellen gehören zu einer zusammengefaßt und das Datum selber muss als Tabellenfeld (nicht nur zwecks Filterung) mitgeführt werden.


Seitenzahlenlösung für diverse Drucker

Was ist darunter zu verstehen?



Zeige mal einen Screenshot des Beziehungsfensters

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MzKlMu

Hallo,
hast Du wirklich für jeden Monat eine extra Tabelle ?
Wenn ja ist das in der Tat krumm (oder eher unbrauchbar). Das gehört alles in eine Tabelle mit einem Feld für ein vollständiges Datum (z.B. der 15. eines Monats).
Dann dürfte Dein Vorhaben zu einem Kinderspiel werden.

Zeige mal ein Bild des Beziehungsfensters.
Gruß Klaus

Lolek123

Dann werde ich das anders machen und die einzelnen Daten in einer Tabelle zusammenfassen. Anbei doch nochmal das Beziehungsfenster. Der Einfachheit nur mit 3 Seitenzahlen-Tabellen.

Wahrscheinlich schlagt ihr die Hände über dem Kopf zusammen....  ;)

MzKlMu

Hallo,
Zitatschlagt ihr die Hände über dem Kopf zusammen....
und die Füße.  ;D
Beziehungen laufen immer über den Primärschlüssel (das ist der Sinn eines PS) und nicht über den Klartext.
Ist der Hostname der Drucker ?
Was ich etwas sonderbar finden würde.
Was wird in das Feld Service eingetragen ?
Was ist der Unterschied der Tabellen 2019-04-Anfang und 2019-04-April

Wahrscheinlich gäbe es noch mehr zu nörgeln, wenn man die Druckertabelle ganz sehen könnte.

Vermeide Sonderzeichen (-) in Feld und Objektnamen, auch keine Leerzeichen, allenfalls der Unterstrich (_)..
Gruß Klaus

Lolek123

Ich werde alles nochmal neu machen, als Primärschlüssel am besten die Inventarnummer des Druckers nehmen, weil die eindeutig ist. Alle Daten in eine Tabelle packen und diese mit Monatsfeld erweitern und dann meine Abfragen darauf aufbauen.

Habt vielen Dank.

MzKlMu

Hallo,
Zitatund diese mit Monatsfeld erweitern
nein, kein Monatsfeld, ein Datumsfeld für ein vollständiges Datum.
Zitatam besten die Inventarnummer des Druckers nehmen
auch nein, nimm ein Autowertfeld und die Inventarnummer zusätzlich.
Gruß Klaus