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

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, 5887 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
Server-Hardware
HP iLO ist gefährdet (iLO 4))
Tipp von AlFalcone vor 8 StundenServer-Hardware

Gemäss Twitter und Heise gibt es eine Angriffsmöglichkeit auf iLO Quelle: iLO ist gefährdet

CMS
Erneut kritische Zero-Day-Lücke in Drupal
Tipp von Reini82 vor 17 StundenCMS

Laut einem Bericht auf t3n gibt es eine Schwere Sicherheitslücke in Drupal die auch schon ausgenutzt wird. Betroffen sind ...

Sicherheit

MikroTik-Router patchen, Schwachstelle wird ausgenutzt

Information von kgborn vor 1 TagSicherheit

Am 23. April 2018 wurde von Mikrotik ein Security Advisory herausgegeben, welches auf eine Schwachstelle im RouterOS hinwies. Mikrotik ...

Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 1 TagWindows 101 Kommentar

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

Heiß diskutierte Inhalte
Ausbildung
Wie gelingt ein guter Einstieg in die FiSi-Ausbildung? (Umschulung)
Frage von SiAnKoAusbildung29 Kommentare

Schönen guten Tag, ich bin SiAnKo und habe seit dem 1.04.2018 eine Umschulung als FiSi angefangen. Ich möchte natürlich ...

Windows Server
Alten DC entfernen
gelöst Frage von smartinoWindows Server27 Kommentare

Hallo zusammen, ich habe hier eine Umgebung übernommen und erstmal einen DCDIAG gemacht. Dabei fällt auf, daß eine ganze ...

Batch & Shell
Mit Powershell den Inhalt einer Excel mit einer Text Datei abgleichen
gelöst Frage von Bommi1961Batch & Shell21 Kommentare

Hallo zusammen, ich muss den Inhalt einer Excel Datei (Mappe1) mit dem Daten einer Text Datei abgleichen. Die Daten ...

Router & Routing
Subnetzmaske vergrößern
gelöst Frage von groovesurferRouter & Routing18 Kommentare

Hallo, hat jemand schonmal getestet was passiert, wenn man die Subnetzmaske bei laufendem Betrieb (wenn user im Netzwerk verbunden ...