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 Größter Datumswert in SQL Abfrage

Mitglied: BadFsaadKl

BadFsaadKl (Level 1) - Jetzt verbinden

14.01.2014, aktualisiert 21:51 Uhr, 4937 Aufrufe, 9 Kommentare, 1 Danke

Moin zusammen,

ich glaub ich hab nen kleinen Hänger.

Habe eine kleine SQL (Oracle) Abfrage, welche mir 2 Ergebnisse zurück gibt.

01.
SELECT
02.
  a.ab_datum,
03.
  a.f_bez,
04.
  a.herst,
05.
  a.typ,
06.
  a.ser_nr
07.
FROM
08.
  osq01_abflug a,
09.
  osq01_flug b
10.
WHERE
11.
  a.f_bez = b.f_bez AND
12.
  b.s_ort = 'Luxemburg' AND
13.
  b.z_ort = 'Ankara' AND
14.
  a.ab_datum BETWEEN '10.11.2006' AND '20.11.2006'
Ergebnis:
01.
15.11.06	LH-421         	Boeing         	B777      	xv56-3142      
02.
17.11.06	LH-421         	Boeing         	B777      	xv23-0889      
Ich möchte als Ausgabe jedoch nur den Eintrag, mit dem Höchsten/Größten Datum. Sprich die Werte vom 17.11.06
Wenn ich im SELECT Bereich das Datum mit MAX auswähle, erhalte ich folgenden Fehler:
01.
SELECT
02.
  MAX(a.ab_datum),
03.
  a.f_bez,
04.
  a.herst,
05.
  a.typ,
06.
  a.ser_nr
07.
FROM
08.
  osq01_abflug a,
09.
  osq01_flug b
10.
WHERE
11.
  a.f_bez = b.f_bez AND
12.
  b.s_ort = 'Luxemburg' AND
13.
  b.z_ort = 'Ankara' AND
14.
  a.ab_datum BETWEEN '10.11.2006' AND '20.11.2006'
01.
ORA-00937: not a single-group group function
02.
00937. 00000 -  "not a single-group group function"
03.
*Cause:    
04.
*Action:
05.
Fehler in Zeile: 3 Spalte: 3
Ich steh momentan Total auf dem Schlauch, was ich hier Gruppieren muss, damit das funktioniert.

Habt Ihr ne Idee wo ich gerade hänge ?

Danke

Gruß BadFsaadKl
Mitglied: colinardo
14.01.2014, aktualisiert um 20:44 Uhr
Hi,
01.
SELECT
02.
  a.ab_datum,
03.
  a.f_bez,
04.
  a.herst,
05.
  a.typ,
06.
  a.ser_nr
07.
FROM
08.
  osq01_abflug a,
09.
  osq01_flug b
10.
WHERE
11.
  a.f_bez = b.f_bez AND
12.
  b.s_ort = 'Luxemburg' AND
13.
  b.z_ort = 'Ankara' AND
14.
  a.ab_datum BETWEEN '10.11.2006' AND '20.11.2006'
15.
ORDER BY a.ab_datum DESC
16.
LIMIT 1
Grüße Uwe
Bitte warten ..
Mitglied: BadFsaadKl
14.01.2014 um 20:36 Uhr
Hi Uwe,

bekomme hier immer nur den 15.11.06 als Wert raus.
selbst wenn ich die Sortierung DESC durch ASC tausche.

Grüße Michel
Bitte warten ..
Mitglied: colinardo
14.01.2014 um 20:45 Uhr
hab's grad nochmal geändert, kann's gerade nicht testen ...
Bitte warten ..
Mitglied: BadFsaadKl
14.01.2014 um 20:45 Uhr
Ich habe auch das gleiche wenn ich ich mir nur den größten Wert von Durchschnittswerten anzeigen lassen möchte:

01.
SELECT
02.
  a.herst AS "HERST",
03.
  AVG(a.f_std) AS "MMFST"
04.
FROM
05.
  osq01_flugzeug a
06.
GROUP BY a.herst
07.
ORDER BY MMFST DESC
Ergebnis:
01.
Douglas        	8447
02.
Boeing         	6225
03.
Airbus         	3239,333333333333333333333333333333333333
Und wenn ich das jetzt mit Rownum mache bekomme ich was völlig anderes:
01.
SELECT
02.
  a.herst AS "HERST",
03.
  AVG(a.f_std) AS "MMFST"
04.
FROM
05.
  osq01_flugzeug a
06.
WHERE ROWNUM = 1
07.
GROUP BY a.herst
08.
ORDER BY MMFST DESC
Ergebnis:
01.
Boeing         	4567
Bitte warten ..
Mitglied: BadFsaadKl
14.01.2014 um 20:47 Uhr
Mit dem Limit bekomme ich gleich nen ORA Fehler:
01.
ORA-00933: SQL command not properly ended
02.
00933. 00000 -  "SQL command not properly ended"
03.
*Cause:    
04.
*Action:
05.
Fehler in Zeile: 16 Spalte: 1
Bitte warten ..
Mitglied: colinardo
14.01.2014 um 20:52 Uhr
oh nö das ist ja Oracle , dann geht das nicht, wie du es dort machst:
http://stackoverflow.com/questions/11390585/maxdate-sql-oracle
Sorry bin grad auf dem Smartphone
Bitte warten ..
Mitglied: colinardo
LÖSUNG 14.01.2014, aktualisiert um 21:51 Uhr
So müsste es für Oracle gehen
01.
SELECT * FROM (
02.
SELECT
03.
  a.ab_datum,
04.
  a.f_bez,
05.
  a.herst,
06.
  a.typ,
07.
  a.ser_nr
08.
FROM
09.
  osq01_abflug a,
10.
  osq01_flug b
11.
WHERE
12.
  a.f_bez = b.f_bez AND
13.
  b.s_ort = 'Luxemburg' AND
14.
  b.z_ort = 'Ankara' AND
15.
  a.ab_datum BETWEEN '10.11.2006' AND '20.11.2006'
16.
ORDER BY a.ab_datum DESC)
17.
WHERE ROWNUM=1;
Bitte warten ..
Mitglied: BadFsaadKl
14.01.2014 um 21:50 Uhr
Supi.
Funktioniert.

Danke Uwe

Gruß Michel
Bitte warten ..
Mitglied: Biber
LÖSUNG 15.01.2014, aktualisiert 29.04.2014
Moin BadFsaadKl und colinardo,

da muss ich Einspruch erheben - diese Abfrage liefert bei den oben angegebenen Daten das richtige Ergebnis - aber nicht bei anderen.
Da das "Abflugdatum" in der Tabelle osq01_abflug nur ein Stringwert ist (und kein Datum), wird hier auch nur ein Stringvergleich gemacht.

Bedeutet: bei der Prüfung "...a.ab_datum BETWEEN '10.11.2006' AND '20.11.2006' " werde alle Strings gefunden, die zwischen "10*" und "20*" sind und davon der "höchste" genommen.
Das muss aber nicht mal ein Datumswert, geschweige denn ein Datum aus dem Jahr 2006 sein,

Beispiel: Wenn in den gefundenen Daten auch noch ein Flug "LH-421" von Luxemburg nach Ankara wäre z.B vom Datum 18.11.2013 (also eigentlich ausserhalb des vermeinlich abgefragten Zeitraums "...a.ab_datum BETWEEN '10.11.2006' AND '20.11.2006' " , dann wird wegen des Stringsvergleichs mit colinardos Abfrage dieser gefunden.

01.
with osq01_abflug( ab_datum, f_bez, herst, typ, ser_nr) as
02.
(         select '17.11.06', 'LH-421', 'Boeing' , 'B777', 'xv23-0889' from dual
03.
union all select '15.11.06', 'LH-421',  'Boeing', 'B777', 'xv56-3142' from dual
04.
union all select '18.11.13', 'LH-421',  'Boeing', 'B777', 'xv99-0815' from dual
05.
) 
06.
, osq01_flug (f_bez, s_ort, z_ort) as
07.
 (                select  'LH-421', 'Luxemburg', 'Ankara' from dual )
08.
 
09.
SELECT * FROM (
10.
SELECT
11.
  a.ab_datum,
12.
  a.f_bez,
13.
  a.herst,
14.
  a.typ,
15.
  a.ser_nr
16.
FROM
17.
  osq01_abflug a,
18.
  osq01_flug b
19.
WHERE
20.
  a.f_bez = b.f_bez AND
21.
  b.s_ort = 'Luxemburg' AND
22.
  b.z_ort = 'Ankara'   AND
23.
    a.ab_datum BETWEEN '10.11.2006' AND '20.11.2006' 
24.
ORDER BY a.ab_datum  DESC)
25.
WHERE ROWNUM=1;
Ergebnis ist ein Datum definitiv ausserhalb des Bereichs 10.Nov 2006 - 20.Nov 2006..
AB_DATUM | F_BEZ  | HERST  | TYP  | SER_NR   
---------+--------+--------+------+----------
18.11.13 | LH-421 | Boeing | B777 | xv99-0815
Besser wäre es mit einer Prüfung auf Datumswerte:

01.
with osq01_abflug( ab_datum, f_bez, herst, typ, ser_nr) as
02.
(         select '17.11.06', 'LH-421', 'Boeing' , 'B777', 'xv23-0889' from dual
03.
union all select '15.11.06', 'LH-421',  'Boeing', 'B777', 'xv56-3142' from dual
04.
union all select '18.11.13', 'LH-421',  'Boeing', 'B777', 'xv99-0815' from dual
05.
) 
06.
, osq01_flug (f_bez, s_ort, z_ort) as
07.
 (                select  'LH-421', 'Luxemburg', 'Ankara' from dual )
08.
 
09.
SELECT * FROM (
10.
SELECT
11.
  a.ab_datum,
12.
  a.f_bez,
13.
  a.herst,
14.
  a.typ,
15.
  a.ser_nr
16.
FROM
17.
  osq01_abflug a,
18.
  osq01_flug b
19.
WHERE
20.
  a.f_bez = b.f_bez AND
21.
  b.s_ort = 'Luxemburg' AND
22.
  b.z_ort = 'Ankara'   AND
23.
   To_date(a.ab_datum, 'dd.mm.yy') BETWEEN To_date('10.11.2006', 'dd.mm.yyyy') AND to_date('20.11.2006','dd.mm.yyyy')
24.
ORDER BY To_date(a.ab_datum, 'dd.mm.yy') DESC)
25.
WHERE ROWNUM=1;
Ergebnis.
AB_DATUM | F_BEZ  | HERST  | TYP  | SER_NR   
---------+--------+--------+------+----------
17.11.06 | LH-421 | Boeing | B777 | xv23-0889

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Datenbanken
MS-SQL-Server + T-SQL+Batch
Frage von kallewirschDatenbanken4 Kommentare

Hallo Gemeinde, mal wieder ein Problem aus dem Bereich des MS-SQL-Servers. Folgendes Thema: Nachts sollen automatisch Backups der DBen ...

Datenbanken
SQL Frontend?
Frage von sschultewolterDatenbanken8 Kommentare

Hallo, bin auf der Suche nach einer MySQL Frontend Software. Zum Aufbau: Auf einem Debian Rechner läuft eine MySQL ...

PHP
Abfrage SQL
gelöst Frage von dudeldoedelPHP3 Kommentare

Hallo zusammen, kann man das in einer SQL Abfrage erreichen ??? Feldwert lautet: {"565":{"textinput":{"comment":"1400"}}} als Ergebnis soll ausgelesen werden ...

Windows Server
SQL-Errorlogs
Frage von kellbiddenWindows Server3 Kommentare

Hallo Ich hab den SQL-Server neu übernommen. Nun habe ich bereits eine Frage: Wo finde ich die Error-Logs des ...

Neue Wissensbeiträge
Datenschutz

SiSyPHuS Win10: Analyse der Telemetriekomponenten in Windows 10

Tipp von freesolo vor 3 TagenDatenschutz1 Kommentar

Alle die sich detailliert für die Datensammlung interessieren die unter Windows 10 stattfindet, sollten sich folgende Analyse des BSI ...

Sicherheit
Adminrechte dank Intel-Grafikkarte
Information von DerWoWusste vor 3 TagenSicherheit2 Kommentare

ist das Advisory, welches beschreibt, welche Intel HD Graphics Modelle Sicherheitslücken haben, mit denen sich schwache Nutzer zu Admins ...

Internet

EU Urheberrechtsreform: Eingriff in die Internetkultur

Information von Frank vor 4 TagenInternet1 Kommentar

Liebe Besucherin, lieber Besucher, warum erscheint das obere Banner in allen Beiträgen? Aus Protest gegen Teile der geplanten EU-Urheberrechtsreform ...

Windows Server
Windows Backup - FilterManager Event 3
Tipp von NixVerstehen vor 5 TagenWindows Server

Hallo zusammen, ich bin kein gelernter ITler und auch beruflich nicht in dem Feld tätig. Wir setzen in unserem ...

Heiß diskutierte Inhalte
DNS
50 EUR für Telekom-, Unitymedia- und Vodafone-Kunden
Frage von Zorro1199DNS14 Kommentare

Hallo zusammen, wie evaluieren gerade das korrekte Einhalten von DNS-TTLs durch verschiedene Provider. Aktuell suchen wir noch Kunden der ...

Windows Server
Sonntagsfrage: Welchen Sinn seht Ihr noch im Server 2019 Essentials
Frage von ashnodWindows Server13 Kommentare

Guten Morgen, ich habe gestern den Windows Server 2019 Essentials als Trial in einer VM installiert um mir das ...

Windows Server
Windows 2012 R2 - Skript um Druckerkonfiguration auszulesen und zu setzen
gelöst Frage von Der-PhilWindows Server11 Kommentare

Hallo! Kennt ihr eine Möglichkeit, per Skript die Konfiguration eines Druckers auszulesen und auf einen anderen anzuwenden? Hintergrund: Ich ...

Grafik
Viele Fotos organisieren - Windows Dateisystem zu lahm bzw. überfordert
Frage von augustaparkGrafik11 Kommentare

Hallo und Guten Morgen, hat einer eine Idee, wie man viele Fotos sinnvoll und effizient organisieren kann? Wir haben ...