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, 9199 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
Exchange Server

WSUS bietet CU22 für Exchange 2007 SP3 nicht an. EOL Exchange 2007

Tipp von DerWoWusste zum Thema Exchange Server ...

Ä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 ...

Backup
Veeam Endpoint Backup findet SQL Datenbank nicht (1)

Frage von FFSephiroth zum Thema Backup ...

Datenbanken
gelöst Access 2010 SQL Tabellen Datensätze einfügen (6)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Windows Server
Sql server 2014 installation auf einer windows server 2012r2 vm (5)

Frage von meister00 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

Frage von michi-ffm zum Thema Batch & Shell ...

Backup
Datensicherung ARCHIV (12)

Frage von fautec56 zum Thema Backup ...

LAN, WAN, Wireless
Per Script auf UniFi-controller zugreifen und WPA2-Key ändern (11)

Frage von Winfried-HH zum Thema LAN, WAN, Wireless ...