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

SQL - Vergleich von Datensätzen

Frage Entwicklung Datenbanken

Mitglied: derPoschi

derPoschi (Level 1) - Jetzt verbinden

25.06.2008, aktualisiert 01.07.2008, 9186 Aufrufe, 8 Kommentare

Hallo zusammen!

Ich habe folgendes Problem:
In unserer Datenbank gibt es eine Tabelle, in welcher technische Merkmale von Maschinen (Spannung, Strom, Leistung, ...) gespeichert werden.
Insgesamt beinhaltet diese Tabelle weit über 100 Felder.
Wenn jetzt eine Maschine umgebaut wird und sich dadurch deren technische Merkmale verändern, kommt für diese Maschine ein weiterer Datensatz in die Tabelle.
Ich bin jetzt auf der Suche nach einem SQL-Statement, welches die beiden Datensätze dieser Maschine miteinander vergleicht und mir die Unterschiede ausgibt.

Beispiel:

DS1 DS2
Seriennr.: 12345 12345
Version: 1 2
Spannung: 230 V 400 V
Strom: 4 A 4 A
Leistung: 0,7 kW 1,2 kW
Drehzahl: 1500 1500

Der Vergleich sollte dann folgendes Ergebnis bringen:

Version: 1 2
Spannung: 230 V 400 V
Leistung: 0,7 kW 1,2 kW

Bei der Datenbank handelt es sich übrigens um einen MS SQL-Server 2000.

Kennt jemand eine Möglichkeit für einen solchen Vergleich?

Viele Grüße,
der Poschi
Mitglied: Wampe
25.06.2008 um 17:13 Uhr
Ahoi

vorweg ... Ist eine Seriennummer nicht "einmalig" .. sprich beide Geräte können diese doch gar nicht haben, oder?

Ich würde von beiden Geräten einfach dem kompletten Datensatz abfragen und bei der Ausgabe entsprechend vergleichen lassen und nur bei unterschiedlichen Werten eine Ausgabe machen lassen.

gruß Dennis
Bitte warten ..
Mitglied: derPoschi
25.06.2008 um 17:25 Uhr
Hi Dennis!

Vielen Dank für Deine Antwort!
Seriennummern sind auch bei uns einmalig, da es sich ja in beiden Fällen um die selbe Maschine handelt. Es wird an dieser Maschine nur ein evtl. etwas modifiziert, sodass sich einzelne Parameter ändern können.

Die Möglichkeit, beide Datensätze komplett abzurufen und dann später auszuwerten, habe ich auch schon in Betracht gezogen. Das Problem ist nur, dass die Software, in der das ganze dann angezeigt werden soll, sich sehr leicht mit einer SQL-Abfrage füttern lässt. Wenn ich die Auswertung programmtechnisch realisieren will, muss in den Seitenaufbau richtig Arbeit gesteckt werden. Eine SQL-Lösung wäre mir also deutlich lieber.
Irgendwelche Vorschläge?

Gruß,
der Poschi
Bitte warten ..
Mitglied: Wampe
25.06.2008 um 18:10 Uhr
Gibt der Anwender die Maschine Explizit an ala "Ich möchte die unterschiede der Maschinen SN: 12345 haben" oder soll eine Gesamtausgabe von allen Maschinen, wo Veränderungen vorgenommen wurden, gemacht werden?
Bitte warten ..
Mitglied: derPoschi
26.06.2008 um 11:34 Uhr
Moin Dennis!

Es geht jeweils nur um die Änderungen an einer ausgewählten Maschine.Der Anwender soll also die Möglichkeit bekommen, sich von der Infoseite einer Maschine aus anzeigen zu lassen, was sich daran geändert hat.

Viele Grüße,
der Poschi
Bitte warten ..
Mitglied: SvenGuenter
01.07.2008 um 16:22 Uhr
01.
SELECT version,spannung,leistung from TABELLE WHERE seriennummer = '12345' 
02.
 

liefert das gewünschte Ergebnis. Ich verstehe den Vergleich nicht ganz. Was willst du denn vergleichen? Ich verstehe das so das du einfach die Daten zu den Maschinen haben willst. Oder möchtest du nur die Maschinen haben wo es mehr als einen datensatz für gibt?
Dann muss man das mit einem Subselect lösen

Gruß Sven
Bitte warten ..
Mitglied: derPoschi
01.07.2008 um 16:32 Uhr
Hallo Sven!

Das Problem ist folgendes: Die Tabelle enthält nicht nur 4 oder 5 Spalten, wie hier im Beispiel, sondern über 100. Ich weiß natürlich nicht, in welchen Spalten es Unterschiede zwischen den verschiedenen Versionen gibt. Wenn ich mir also alle Spalten ausgeben lasse, muss sich irgendjemand hinsetzen und sämtliche Spalten überprüfen, ob es dort eine Änderung gibt. Genau das möchte ich verhindern. Ziel ist also, dass in der Abfrage nur genau die Spalten ausgegeben werden, in denen es zwischen Version 1 und 2 einen Unterschied gibt; Spalten, in denen es keine Änderung gab, sollen nicht ausgegeben werden (siehe Beispiel oben).
Bitte warten ..
Mitglied: SvenGuenter
01.07.2008 um 16:54 Uhr
ok nun habe ich es. Setze mich nachher mal hin und bastel dir was. Falls nicht jemand schneller sein sollte.

Nur zum Verständnis.

Du willst zu irgendeinen Artikel ( hier Maschinen ) nur die Spalten bekommen die sich unterscheiden. Richtig?

Gruß

Sven
Bitte warten ..
Mitglied: derPoschi
01.07.2008 um 17:05 Uhr
Hi Sven!

Ja, genau! Nur die Spalten, die sich unterscheiden. Wie oben im Beispiel:
Spannung ist bei Version 2 anders als bei Version 1 -> Spannung wird ausgegeben.
Strom unterscheidet sich nicht -> Strom wird nicht ausgegeben.
usw...

Gruß,
Poschi
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Festplatten, SSD, Raid
Vergleich zweier SSD-Typen im Raid-10 für den Anwendungsfall SQL-Datenbank (8)

Frage von DerWoWusste zum Thema Festplatten, SSD, Raid ...

Datenbanken
gelöst SQL-Abfrage - DISTINCT - letztes Datum (3)

Frage von emeriks zum Thema Datenbanken ...

Windows Server
gelöst SQL-Server Datenbanksicherung inkl. Benutzerberechtigungen dafür? (4)

Frage von 1410640014 zum Thema Windows Server ...

Windows 10
gelöst Installationsproblem sql server 2014 auf windos 10 rechner (23)

Frage von jensgebken zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...