Top-Themen

Aktuelle Themen (A bis Z)

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

Frage Microsoft Microsoft Office

GELÖST

Zwei Tabellen zusammenführen und Bezüge zueinander herstellen

Mitglied: quba

quba (Level 1) - Jetzt verbinden

11.02.2011 um 08:31 Uhr, 5862 Aufrufe, 6 Kommentare

Hallo zusammen,

ich habe gerade Probleme mit einer Aktualisierungsabfrage.
Ist etwas komplizierter aber ich versuche es mal zu beschreiben:

Es sind zwei Tabellen (PC und Bildschirm) gegeben die in eine einzelne Tabelle (devices) überführt werden sollen.
Die Geräte in den zwei Ausgangstabellen habe eine eindeutige Inventarnummer (IID) sowie jeweils eine unique ID (PCID und BSID). Jeder Bildschirm ist einem PC zugordnet, d.h. die entsprechende PCID steht in einer Spalte in der Tabelle Bildschirm. Es kann auch sein, dass ein PC zwei Bildschirme hat, dann kommt eine PCID in zwei verschiedenen Einträge der Tabelle Bildschirm vor.

Die neue Tabelle devices beinhaltet wie gesagt beide Geräte. Ziel ist es die Bildschirme den PCs zuzuordnen (Spalte bs1 und bs2).
Ich habe jetzt schon eine Abfrage die mir zumindest anzeigt welche Inventarnummer (PC) welcher Inventarnummer (BS) zugeordnet ist.

Nur wie bekomme ich es hin, dass die neue unique ID der Tabelle devices von einem BS entsprechend in der Spalte bs1 oder bs2 des PCs steht?

Bsp:

Tabelle Bildschirm:
BSID | NAME | IID | PCID
1 | BS001 | 289 | 5
2 | BS002 | 290 | 5

Tabelle PC:
PCID | NAME | IID
5 | PC001 | 26

neue Tabelle devices:
ID | IID | NAME | BS1 | BS2
1 | 289 | BS001
2 | 290 | BS002
3 | 26 | PC001

Ziel ist dem PC001 in der Spalte BS1 und BS2 jeweils die ID der BS einzufügen.
Also quasi:

neue Tabelle devices:
ID | IID | NAME | BS1 | BS2
1 | 289 | BS001
2 | 290 | BS002
3 | 26 | PC001 | 1 | 2


Ich habe jetzt wie gesagt schon eine Abfrage die die Zuordnung der Inventarnummern zueinander hat, denn dies ist in der Zieltabelle ja mein einzigster Bezug zueinander.

IID-PC | IID-BS
26 | 289
26 | 290

Nur wie weitermachen???

Klingt ein wenig kompliziert. Und fragt nicht wieso ich aus zwei Tabellen eine machen will, es ist einfach so vorgegeben und gewollt Smile

Vielen Dank schonmal für Hinweise oder Tipps.
Grüße
quba
Mitglied: StefanKittel
11.02.2011 um 08:36 Uhr
Moin,

wenn ich das richtig sehe ich Dein Problem eigentlich nur der 2. Bildschirm.
Sonst machst Du eine normale Abfrage mit Bezug und erhällst eine Liste mit allen Feldern, aber pro PC und BS Kombination einen Eintrag.
Also bei einem PC mit zwei BS auch 2 Einträge.

Mit einer Abfrage würde das nur gehen wenn Du die 2. BS in eine 3. Tabelle ausgliederst und auch in der Abfrage hinzufügst.
Sonst nur per VBA (ist aber nicht so kompliziert).

Stefan
Bitte warten ..
Mitglied: quba
12.02.2011 um 09:31 Uhr
Moin,

danke erstmal für die superschnelle Reaktion gestern!

Irgendwie ist mir das ja klar wie Du das meinst, aber ich glaube ich stehe auf dem Schlauch...
Hättest Du mir vllt. ein Code Beispiel wie Du das lösen würdest?

Meine Hilfstabelle habe ich ja schon mit PCIID und BSIID. Nur benötige ich dann noch die neue BSid um diese dem PC mit der PCIID unter bs1 bzw bs2 hinzuzufügen....

Danke für Deine Hilfe

quba
Bitte warten ..
Mitglied: Biber
12.02.2011 um 21:26 Uhr
Moin quba,

Rückfragen:
Du hast ein gewisses Überangebot an Primarykey-Kandidaten.
In der "alten" Tabellen-Welt sind eigentlich die Inventarnummer IID wie auch die "BSID" und die "PCID" eindeutig.
Und jeweils zu zweit pro Tabelle.

In der "neuen" Welt mit einer Tabelle weniger führst du eine neue sinnfreie "ID" ein... wieder zusätzlich zur eindeutigen Invntarnummer.

Und die Bildschirme, die bisher verknüpft sind über die alte "PCID" mit einem PC...
Diese "PCID" taucht im neuen Modell ja nicht mehr auf.

Also:
  • ist die Inventarnr IID jetzt der eindeutige PK für alle PCs und Bildschirme?
  • wenn ja, wozu dient denn die neue "ID"???
  • wenn nein - in welchen Fällen ist die Eindeutigkeit verletzt?

Grüße
Biber
Bitte warten ..
Mitglied: quba
13.02.2011 um 22:07 Uhr
Grüß Dich Biber,

richtig, die IID gibt es immer nur einmal, jedoch kann es sein, dass einige Geräte aus der Historie keine Inventarnummer besitzen.
Aus diesem Grund war auch bisher die Verbindung über die PCID und BSID hergestellt.

Daher benötige ich auch weiterhin eine neue ID

Die IID ist zwar auch eindeutig jedoch in der neuen Tabelle quasi "nur" als Datenfeld zu behandeln.

Was meinst Du mit "Eindeutigkeit verletzt" ?

Danke und Grüße
quba
Bitte warten ..
Mitglied: Biber
13.02.2011 um 22:55 Uhr
Moin quba,

mit "Eindeutigkeit verletzt" meinte ich genau den Fall, ob denn in dieser Datensammlung auch Geräte OHNE Inventarnur erfasst sind.
[ Ist ja die Frage, was denn nun das Ziel dieser Tabllen sein soll - bei einer "nachträglichen Erfassung" kann ja gelten:
"Ich erfasse nur Geräte mit Inventarnummer und in dieser Liste auch keine, die noch keine Inventarnummer haben."]

Kurz angemerkt - meine Meinung zu dem Thema ist:
Wenn ihr euch für den Weg einer Datenbank-Erfassung entschieden habt, dann müssen die Daten konsistent sein.
Bzw. alle Ausnahmen/Altlasten/Sonderfälle draussen bleiben.

Wenn der Schwerpunkt nicht die Konsistenz ist, sondern "der Überblick".... dann nehmt Excel oder Vergleichbares.

Deinem Datenmodell traue ich schon aufgrund der mehrfachen Unique-Keys je Tabelle (die aber manchmal auch leer sein dürfen) keine 10cm weit.

Beispiel - Mit der folgenden Abrage aus obigen Beispieltabellen könntest du deine neue "devices".Tabelle initial füllen:
01.
SELECT  PC.PCId as OldPcOrBSID, PC.name, PC.IID, min( Bildschirm.BSid) as BS1, 
02.
           Iif(max( Bildschirm.BSID)>min(Bildschirm.BSID), max(Bildschirm.BSid), NULL ) as BS2 
03.
FROM PC left JOIN Bildschirm ON PC.PCID = Bildschirm.PCID 
04.
group by PC.PCID, PC.name, PC.IID 
05.
UNION select B.BSID, B.name, B.IID,  null, null from Bildschirm b;
Diese Abfrage (hier nur als reines SELECT, also gefahrlos ausführbar) liefert alle Felder für die neue "devices",
ausgenommen die neue Phantasie-ID (die ja vermutlich wieder so eine tolle "Autowert"-Klamotte sein soll).
Die wird aber ja ohnehin automatisch vergeben.

Zusätzlich kommt in dieser Abfrage noch die alte "PCID/BSID" mit... an der hängt ja eigentlich die Zuordnung von BS1/BS2 zu PC(s).

Problem--> genau diese alte -nennen wir es scherzhaft "Fremdschlüsselbeziehung" ist in der neuen Tabellenstruktur nicht mehr da.
Und die neue "eindeutige ID" ist ja wirklich absolut wertlos - dadurch sind zwar alle Datensätze "verschieden",
aber ob die "inhaltlich ungleich" sind, das kann diese ID nicht zusichern.

Ich würde Excel nehmen für solche Daten - die interessieren doch auch nicht 5000 Anwender, die da zeitgleich drauf aktualisieren.
Sondern einen verträumten Admin, der zweimal im Monat da einen Update durchführt.

Grüße
Biber
Bitte warten ..
Mitglied: quba
14.02.2011 um 08:19 Uhr
Moin Biber,

danke für deine Erklärung/Meinung und Hilfe zu dem Thema.

Ich muss Dir schon recht geben und evtl. das ganze wirklich nochmal überdenken

Wollte irgendwie einen schnellen unkomplizierten Weg wählen, der mir aber im nach hinein doch ein wenig zu umständlich erscheint.

Danke erstmal für das Beispiel, einen schönen Tag und Grüße
quba

Edit: Mittlerweile habe ich es mit insgesamt 4 Hilfstabellen geschafft mein gewünschtes Ergebnis zu erreichen.
Bitte warten ..
Ähnliche Inhalte
Datenbanken
MySQL zwei Tabellen zusammenführen
gelöst Frage von RedBullmachtfitDatenbanken10 Kommentare

Hallo, ich habe in MySQL eine Artikel-Tabelle in welcher alle Artikel gespeichert sind sowie eine art_preise-Tabelle, in welcher nur ...

Datenbanken
SQL - Zwei Tabellen zusammenführen
gelöst Frage von Memo66Datenbanken6 Kommentare

Hallo, ich bin dabei SQL zu lernen und habe mir dazu eine Fußballdatenbank angelegt. Ich habe nun folgendes Problem ...

Datenbanken
Zwei Access Datenbanken zusammenführen
Frage von geocastDatenbanken5 Kommentare

Hallo Zusammen Ich habe hier zwei Accessdatenbanken von einer internen Betriebssoftware. Vom Aufbau her sind sie Identisch, nur eben ...

Batch & Shell
Auswahl zweier Variablen zu einer zusammenführen
Frage von complexBatch & Shell5 Kommentare

Moin miteinander, und wieder eine Frage bezüglich Powershell: Ich habe das Problem, dass ich gerade an einem script arbeite, ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 2 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 3 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 3 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 3 TagenSicherheit12 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Firewall
Penetrationstester-Labor - Firewalls
Frage von Oli-nuxFirewall10 Kommentare

Mich würde interessieren warum man beim Einrichten eines Penetrationstester-Labor (VMs) die Firewall der Systeme deaktivieren soll? Hat das nur ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS9 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...

Netzwerkgrundlagen
IPv6 Inter-VLAN Routing
gelöst Frage von clSchakNetzwerkgrundlagen9 Kommentare

Hi ich befasse mich gerade mit der Implementierung von IPv6 was bisher (in einem VLAN) korrekt funktioniert inkl. DNS ...

Windows Netzwerk
Zugriff auf den Desktop Ordner eines anderen Rechners in der gleichen Domäne
gelöst Frage von JensNomaWindows Netzwerk6 Kommentare

Guten Abend, ich war neulich mit unserem Admin am Tisch gesessen. Er an seinem Notebook angemeldet mit dem Domänen-Admin, ...