Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Abfrage von Daten aus unterschiedlichen Tabellen

Frage Microsoft Microsoft Office

Mitglied: JohannesK

JohannesK (Level 1) - Jetzt verbinden

18.03.2011 um 11:14 Uhr, 5325 Aufrufe, 8 Kommentare

Ich würde ganz gerne Daten aus mehreren Tabellen mit Bedingungen anzeigen lassen.

Hallo zusammen,

ich bin derzeit in ACCESS dabei eine Maschinenliste in unserem Unternehmen zu pflegen. Wir haben die Daten aus SAP und möchten diese in ACCESS einfügen und ausgeben bzw. filtern. Warum wir das nicht in SAP machen? Ganz einfach, es haben nicht alle die benötigten Zugriffsrechte und man muss da auch mehrere Formulare aufrufen um an die gewünschten Informationen zu kommen.

Ich habe nun mehrere Tabellen erstellt, mir würde aber wahrscheinlich schon die Hilfe anhand diesem Beispiel reichen!

Tabelle 1: Maschinen
> MaschinenNr
> MaschinenBezeichnung
> StandortNr

Tabelle 2: Standorte
> Werk
> StandortNr
> StandortBezeichnung

In SAP ist es nun so, dass ich bei den Maschinen Eingenschaften nur die StandNr angezeigt bekomme, nicht aber die Bezeichnung.


Nun möchte ich mir einen Bericht erzeugen lassen, der mir folgende Sachen anzeigt:
> MaschinenNr
> MaschinenBezeichnung
> StandortNr
> StandortBezeichnung


In Access-Schulungsunterlagen (leider nicht meine) die ich hier liegen habe, steht irgendwas von Fremdschlüssel. Leider sind die Unterlagen auch mit Access 2000 erstellt, und ich arbeite hier mit 2010.
Mitglied: mischn1980
18.03.2011 um 11:26 Uhr
Hi,

da erstellst du dir eine Abfrage.

In dieser Abfrage brauchst du einen INNER JOIN.

Sieht dann ca. so aus:

SELECT maschine.*, standort.* from maschine INNER JOIN standort ON (standort.maschinennr = maschine.maschinennr AND standort.standortnr = maschine.standortnr)


Die Abfrage nimmst du dann als Quelle für den Bericht.

Gruss

Michael
Bitte warten ..
Mitglied: JohannesK
18.03.2011 um 11:49 Uhr
Hallo Michael,

so wie ich die Abfrage (mit meinen geringen SQL-Kenntnissen) verstehe, beziehst du dich in dem ON() Teil auf ein Feld Maschinennr in der Tabelle Standort. Oder verstehe ich das gerade falsch? Der Aufbau ist doch Tabelle.Feldname...

Aber das Feld habe ich halt nicht. In SAP kann ich mir die Daten nur einzeln zusammen suchen...
Bitte warten ..
Mitglied: mischn1980
18.03.2011 um 11:59 Uhr
Du hast doch oben in dem ersten Post geschrieben, dass du die Werte in einer Tabelle getrennt hast.

In der Abfrage werden die Tabellen Maschinen und Standorte mit einander verknüpft. Mit dem ON werden die Datensätze zusammengeführt bei denen die Maschinennummer und die Standortnummer in beiden Tabellen gleich ist.

Du brauchst diese zwei Tabellen wie du oben beschrieben hast. Über den INNER JOIN ziehst du diese zwei Tabellen zu einer zusammen.

Gruss

Michael
Bitte warten ..
Mitglied: bastla
18.03.2011 um 12:44 Uhr
Hallo JohannesK und willkommen im Forum!

Ist denn die Maschine anhand der "StandNr" zu identifizieren? Falls ja, kannst Du den Ansatz von mischn1980 reduzieren auf
01.
SELECT maschine.*, standort.* from maschine INNER JOIN standort ON standort.StandNr = maschine.StandNr;
Grüße
bastla
Bitte warten ..
Mitglied: Biber
18.03.2011 um 13:26 Uhr
Moin JohannesK,

willkommen im Forum.
bastlas Ansatz ist vollkommen korrekt und ausreichend, du brauchst weder eine Zwischenabfrage noch zwei Tabellen zu einer zusammenfassen.

01.
SELECT m.MaschinenNr,  m.MaschinenBezeichnung 
02.
               , m.StandortNr    , s.StandortBezeichnung 
03.
FROM Maschinen m,  Standorte s 
04.
WHERE m.StandortNr = s.StandortNr
Auch wenn ich von SAP soviel halte wie von Thunfischpizza aus der Dose - eigentlich sollte auch bei denen ausgeschlossen sein,
dass sich in der Maschinen-Tabelle Datensätze mit einer StandortNr befinden, die nicht in der Standort-Stammdaten gefunden wird.
Sollte das doch erlaubt oder zumindest Realität sein, dann halt statt des INNER JOINs einen LEFT JOIN.
01.
SELECT m.MaschinenNr , m.MaschinenBezeichnung 
02.
               , m.StandortNr  , s.StandortBezeichnung 
03.
FROM Maschinen m LEFT JOIN Standorte s ON m.StandortNr = s.StandortNr
Grüße
Biber
Bitte warten ..
Mitglied: JohannesK
20.03.2011 um 20:24 Uhr
Zitat von Biber:
Auch wenn ich von SAP soviel halte wie von Thunfischpizza aus der Dose - eigentlich sollte auch bei denen
ausgeschlossen sein,

Naja, so viel halte ich da auch noch nicht von, habe aber auch erst seit zwei Wochen damit zu tun. Ist halt alles noch etwas fremd!

Bei dem ersten Beispiel von mischn ist es nicht so schön, dass man erst noch einen Parameterwert eingeben muss. Aber deine Abfrage funktioniert genau so wie ich mir das vorstelle!

Super!! Vielen dank nochmal!!!
Bitte warten ..
Mitglied: JohannesK
22.03.2011 um 13:52 Uhr
Hallo zusammen,

leider funktioniert das bei mir immer noch nicht so richtig

Bei mir zu Hause war es kein Problem, hat wunderbar funktioniert aber hier in der Firma nicht mehr

Ich habe hier nun folgende Abfrage gebaut:
[quote]SELECT e.Equipment, e.Bezeichnung, e.Standort, s.Standort, s.Bezeichnung
FROM Equipment AS e LEFT JOIN Standort AS s ON e.Standort = s.Standort;[/quote]
Zur Erklärung: Equipment ist die Tabelle wo die Maschinen drin stehen und Standort halt die Standorte. In der Equipment ist das Feld Equipment die Zahl, über die eine Maschine eindeutig identifiziert werden kann, also hier auch mein Primärschlüssel. In der Tabelle Standorte habe ich keinen Primärschlüssel definiert.

Jetzt gibt es aber auch Maschinen in der Liste, bei denen kein Standort eingepflegt ist. Das Feld ist also leer.


Zusätzlich zu den Standorten kommt in Zukunft da noch zwei weitere Abfragen im ähnlichen Stil hinzu. Die Kostenstellen- und Arbeitsplatzbezeichnungen habe ich auch nur einzeln in externen Tabellen. Da kann es aber eigentlich nicht mehr vorkommen, das es leere Felder gibt.

Weiß da gerade jemand Rat???

grüße
Johannes
Bitte warten ..
Mitglied: Biber
22.03.2011 um 16:52 Uhr
Moin JohannesK,

ich hatte doch in meinem letzten Kommentar zwei Statements zusammenphantasiert.
Eines mit dem INNER JOIN für den optimistischen Fall, dass SAP inzwischen mehr Grips hat als die Thunfischpizza aus der Dose,
und eines mit einem LEFT JOIN für den Fall, dass die immer noch so arbeiten wie wir es alle seit Erfindung der Alufolie kennen.

Hast du denn die LEFT-JOIN-Variante auch ausprobiert?

Grüße
Biber

P.S.
"Da kann es aber eigentlich nicht mehr vorkommen, das es leere Felder gibt."
Dieses "eigentlich" ist es ja, was die Anzahl der Beschäftigten in der IT-Branche verursacht...
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Datenbanken
gelöst Schleifen in SQL-Abfrage bei 2 Tabellen (2)

Frage von Aximand zum Thema Datenbanken ...

Microsoft Office
Excel Daten aus diversen Tabellen sammeln (9)

Frage von FitforLife zum Thema Microsoft Office ...

Backup
gelöst Datensicherung von Daten, auf denen die ganze Zeit gearbeitet wird (8)

Frage von Windows11 zum Thema Backup ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...