Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Datensätze vergleichen innerhalb einer SQL - Tabelle

Frage Entwicklung Datenbanken

Mitglied: Supergecko

Supergecko (Level 1) - Jetzt verbinden

11.12.2008, aktualisiert 20:58 Uhr, 26730 Aufrufe, 9 Kommentare

Hallo liebe Community,
Ich habe mal wieder ein Problem bei einer SQL Abfrage.

Ich habe folgenden Tabellenaufbau in Access:

ID Datum Wert1 Wert2 Name
1 20081210 5,2 4,8 Bla
2 20081211 4,7 4,5 Bla
3 20081212 4,8 4,4 Myl
4 20081213 4,4 4,2 Myl
... ... ... ... ...

Ich möchte nun überprüfen wann der Wert2 von dem Datensatz ID1 größer ist als der Wert1 von dem Datensatz ID2.
Bei diesem Beispiel soll folgendes ausgegeben werden:


ID Datum Wert1 Wert2 Name
2 20081211 4,7 4,5 Bla

Wie muss ich meine SQL Abfrage gestalten damit ich zu diesem Ergebnis komme?

Mfg,
Supergecko
Mitglied: Logan000
11.12.2008 um 14:20 Uhr
Moin Moin

Du möchtest immer nur die Datensätze ID=1 und ID=2 miteinander vergleichen?

Gruß L.
Bitte warten ..
Mitglied: Supergecko
11.12.2008 um 14:47 Uhr
Nein, die Tabelle umfasst ca. 4 Millionen Datensätze, das oben ist nur ein Beispiel,
ich will sinngemäß:

Wenn Wert2 von ID i größer als Wert1 von ID i+1
dann gebe ID i+1 aus.

// i ist Platzhalter für eine ID, und i+1 logischerweise die nachfolgende ID

Hoffe habs jetz deutlicher gemacht.
MFG Supergecko
Bitte warten ..
Mitglied: 70620
11.12.2008 um 15:09 Uhr
müsste in deinem Beispiel dann nicht Zeile 4 als Ausgabe kommen?

Dann könntest aj einfach "SELECT MAX(ID) FROM table" schreiben
Bitte warten ..
Mitglied: Supergecko
11.12.2008 um 15:31 Uhr
Nein, da Wert2 von ID 3 ja nicht größer ist als Wert1 von ID4, meine bedingung wäre nicht erfüllt
Bitte warten ..
Mitglied: 32067
11.12.2008 um 15:38 Uhr
Fehlt dir nur das Stichwort "Self Join" ?

SELECT t2.id + 1
FROM tabelle as t1, tabelle as t2
WHERE t1.id = t2.id + 1 AND t1.wert2 > t2.wert1

(So in etwa zumindest)

Bei so Joins mit so großen Tabellen sollte man aber vorher lieber mal mit einem kleineren Datenbestand entwickeln und auch genau Abfragepläne und Indices durchgehen sonst legt man den Server auch schonmal lahm ...
Bitte warten ..
Mitglied: Supergecko
11.12.2008 um 15:43 Uhr
hi DKrause,
danke für deine antwort, allerdings rede ich nur von einer tabelle,
dein Script benötigt aber 2 tabellen, t1 und t2 oder versteh ich das falsch?
Bitte warten ..
Mitglied: Supergecko
11.12.2008 um 17:35 Uhr
Hallo vielen dank für die Nachricht.

Die Idee ist nicht schlecht, allerdings haben wir zu zweit unsere Köpfe zerbrochen ob dies unser Ergebnis ergibt.
Wir haben im Test durch deinen Vorschlag ein Ergebnis erhalten, bei der die ID Konstant ist. D.h. es wird unendlichmal ein und die selbe Zeile dargestellt.



Wir haben aus unserer Tabelle mit deinem Code:

ID Datum Wert1 Wert2 Name
1 20081210 5,2 4,8 Bla
2 20081211 4,7 4,5 Bla
3 20081212 4,8 4,4 Myl
4 20081213 4,4 4,2 Myl

das hier rausbekommen:

ID Datum Wert1 Wert2 Name
2 20081210 5,2 4,8 Bla
2 20081210 5,2 4,8 Bla
2 20081210 5,2 4,8 Bla
2 20081210 5,2 4,8 Bla

Was nicht ganz dem gewünschten Ergebnis entspricht.
  • Der Kollege liest schon das neue Testament*
Bitte helft ihm...
Bitte warten ..
Mitglied: Biber
11.12.2008 um 20:58 Uhr
Moin Supergecko,
Der Kollege liest schon das neue Testament*
Bitte helft ihm...
Na ja... es entspricht mehr meiner Mentalität, ihn ein bissi schmoren zu lassen... hihihi..


01.
SELECT t2.*  
02.
FROM Werte as t1, Werte as t2 
03.
WHERE( t1.id+1  = t2.id ) AND t1.wert2 > t2.wert1 ;
Bei mir heißt die Tabelle "Werte"

Ein bisschen aussagefähiger wäre die Query so:
01.
SELECT t2.ID, t2.Datum,  t1.wert2 as Vortagswert2,  
02.
t2.wert1 as Tageswert1, t2.wert2 as Tageswert2, t2.name 
03.
FROM Werte AS t1, Werte AS t2 
04.
WHERE (t1.id+1=t2.id) And t1.wert2>t2.wert1;
Grüße
Biber
Bitte warten ..
Mitglied: Supergecko
12.01.2009 um 08:52 Uhr
Super!
Danke hat geklappt.
(Dier Rückmeldung kommt etwas spät, aber ich war bis heute im Urlaub)
Also nochmals Danke.
Bitte warten ..
Ähnliche Inhalte
Datenbanken
gelöst Access 2010 SQL Tabellen Datensätze einfügen (6)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Datenbanken
gelöst SQL - Zwei Tabellen zusammenführen (6)

Frage von Memo66 zum Thema Datenbanken ...

Datenbanken
gelöst SQL ORDER BY und Join mit 2 Tabellen (7)

Frage von Dipps zum Thema Datenbanken ...

Neue Wissensbeiträge
Ubuntu

Ubuntu 17.10 steht zum Download bereit

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(6)

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(2)

Information von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Router & Routing
Allnet - VDSL2 Modem - SFP (mini-GBIC) (20)

Frage von Dobby zum Thema Router & Routing ...

Voice over IP
DeutschlandLAN IP Voice Data M Premium, Erfahrung mit Faxgeräte? (17)

Frage von liquidbase zum Thema Voice over IP ...

Windows 10
Windows 10 Ordnerfreigabe (14)

Frage von Xaero1982 zum Thema Windows 10 ...