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 MS-SQL Group by, aber nur mit jüngerem Datum

Mitglied: Meierjo

Meierjo (Level 2) - Jetzt verbinden

17.05.2010 um 15:59 Uhr, 5682 Aufrufe, 6 Kommentare

Hallo

Ich bin mit dem Einstieg in SQL-Statements beschäftigt, bin also noch neu in diesem Gebiet

Folgende Tabelle existiert:

I_nr D_gueltiG_Ab DC_kalk_STD_Satz
----------------------- ---------------------------------------
1 2007-06-01 00:00:00.000 100.00
2 2007-06-01 00:00:00.000 120.00
2 2008-10-01 00:00:00.000 130.00
3 2007-06-01 00:00:00.000 120.00
3 2008-10-01 00:00:00.000 130.00
4 2007-06-01 00:00:00.000 60.00
4 2008-10-01 00:00:00.000 70.00
5 2007-06-01 00:00:00.000 60.00
5 2008-10-01 00:00:00.000 70.00
6 2007-07-03 00:00:00.000 60.00
6 2008-10-01 00:00:00.000 70.00
7 2007-06-01 00:00:00.000 130.00
7 2008-10-01 00:00:00.000 140.00
8 2007-06-01 00:00:00.000 60.00
8 2008-10-01 00:00:00.000 70.00
9 2007-06-01 00:00:00.000 130.00
9 2008-10-01 00:00:00.000 140.00
10 2007-06-01 00:00:00.000 60.00
10 2008-10-01 00:00:00.000 70.00
11 2007-06-01 00:00:00.000 130.00
11 2008-10-01 00:00:00.000 140.00
12 2007-06-01 00:00:00.000 60.00
12 2008-10-01 00:00:00.000 70.00

wie ihe sehen könnt, existiert die I_nr teilweise mehrfach (fragt nicht warum, ich habe die Tabelle nicht erstellt)

Ich möchte nun mit einem Statement pro I_Nr eine Zeile erhalten. So weit kein Problem, liesse sich per select distinct oder Group by umsetzen.

Ich möchte aber dort, wo die selbe I-Nr mehrmals vorkommt nur die Zeile mit dem jüngeren Datum erhalten.

Ist für euch Programmierprofis wohl ein Klacks, aber mir steht da irgendwie einer auf dem Schlauch

Gruss Meierjo
Mitglied: godlie
17.05.2010 um 16:18 Uhr
Hallo,
einfach ein Order by Datum Desc und Limit 1 damit erhälst den jüngsten Eintrag afaik.
Bitte warten ..
Mitglied: Meierjo
17.05.2010 um 16:49 Uhr
Hallo Godlie

Besten Dank für die prompte Antwort.

Der Befehl oder die Option Limit scheint aber aus MySql zu stammen, und kann in MSSQL nicht verendet werden.

Gruss Meierjo
Bitte warten ..
Mitglied: it-frosch
17.05.2010 um 17:24 Uhr
Hallo Meierjo,

select [D_gueltiG_Ab],[I_nr], [DC_kalk_STD_Satz] from [DB].[dbo].[tabelle]
order by [D_gueltiG_Ab] desc


MSSQL hat übrigends auch eine Hilfe.
Bitte warten ..
Mitglied: Meierjo
17.05.2010 um 19:56 Uhr
Hallo IT-Frosch

Danke für die Rückmeldung

Mit deinem Statement bekomme ich aber alle I_nr ausgewiesen.
Ich möchte aber dort , wo mehrere Einträge pro I_nr stehen (ZB I_nr 02, 03 oder 04) nur den Datensatz mit dem jüngeren Datum (ZB 2008-10-01 00:00:00.000 ) erhalten

Gruss und schönen Abend
Bitte warten ..
Mitglied: Biber
17.05.2010 um 20:38 Uhr
Moin Meierjo,

dann musst du die Tabelle zweimal im Select haben , einmal satzweise und einmal els SubSelect mit GROUP BY [I_nr] und über den MIN()-Wert von [D_gueltig_ab] verjoinen.
Ist aber alles gequirte...s Suboptimum, weil
  • keiner von uns den Primaray Key, das allein identifizierende Merkmal eines Satzes kennt
  • weil es logisch nicht sein kann, dass mehrere Sätze mit der ID x (z.B. 7) beide "gueltig_ab" irgendwann sind und beide immer noch "gueltig_bis" zur Schalke-Meisterschaftsfeier sein werden
  • weil diese Liste nach deinen Vorgaben generiert dementsprechend vollkommen willkürlich irgendwelche Stundensätze aus diesem und aus vergangenen Jahren in einen Kontext bringt, der absoluter Quark ist.

Sinngemäß (bei sinnvoll kombinierbaren Sätzen!) wäre das Muster in etwa:
01.
SELECT a.I_nr, a.D_Gueltig_ab, a.DC_Std_Satz from [DB].[dbo].[tabelle] as a, 
02.
        (SELECT  I_nr, Min(D_Gueltig_ab) as min_Gueltig_Ab   
03.
                From DB].[dbo].[tabelle]  
04.
                    Group By I_Nr) b 
05.
Where a.I_nr = b.I_nr 
06.
And a.D_gueltig_ab = B. Min_Gueltig_ab 
07.
Order by 1
Grüße
Biber
Bitte warten ..
Mitglied: Meierjo
18.05.2010 um 06:54 Uhr
Hallo Biber

Dnke dir, deine Lösung funktioniert.

>>weil es logisch nicht sein kann, dass mehrere Sätze mit der ID x (z.B. 7) beide "gueltig_ab" irgendwann sind und beide immer noch "gueltig_bis" zur Schalke-Meisterschaftsfeier sein werden
Darüber hab ich mich auch schon gewundert, dachte mir aber, der Profi, der die Datenbank erstellt hat, wird sich schon was gedacht haben. Aber wie gesagt, die Tabelle ist nicht von mir, ich beschäftige mich nur damit, Daten aus dieser Tabelle zu lesen.

Danke dir herzlich für deine Hilfe.

Gruss Meiero
Bitte warten ..
Ähnliche Inhalte
Entwicklung
SQL GROUP BY Convert Datetime
gelöst Frage von StfnCstrEntwicklung4 Kommentare

Hallo Zusammen, ich sitze schon seit gefühlten Stunden an nem Script, ist wahrscheinlich sehr simpel, jedoch seh ich den ...

Datenbanken
MYSQL View group by
gelöst Frage von schneerunzelDatenbanken2 Kommentare

Hallo zusammen, ich habe eine Tabelle in einer MySQL DB über die ich eine View legen möchte: Die Tabelle ...

Datenbanken

SQL - Abfrage - Mehrere JOINS - Zusätzliche unterabfrage mit Group By

gelöst Frage von Andy1987Datenbanken4 Kommentare

Hallo Leute, ich habe mal wieder ein Problem mit einer SQL Abfrage. Es geht hierbei um Übersicht zur Netzwerkdokumentation, ...

Datenbanken

SSIS - Group By und MAX von String-Spalten

gelöst Frage von batpointDatenbanken2 Kommentare

Hallo. Ich habe im SSIS eine Tabelle die ich gerne auf zwei Spalten hin gruppieren möchte. Meine Tabelle sieht ...

Neue Wissensbeiträge
Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 23 StundenWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Sicherheit

Zero Day-Schwachstelle im Internet Explorer - wird von APT bereits ausgenutzt

Information von kgborn vor 1 TagSicherheit

Im Kernel des Internet Explorer scheint es eine Zero Day-Lücke zu geben, die von staatlichen Akteuren (APT) im Rahmen ...

Microsoft
Folder Security Viewer-Lizenzen zu gewinnen
Information von kgborn vor 1 TagMicrosoft

Ich nehme das Thema mal in Absprache mit Frank hier auf, da es für den einen oder anderen Administrator ...

Hardware

Feueralarm killt Festplatten in Rechenzentrum - führt zu größerem Ausfall

Information von kgborn vor 1 TagHardware12 Kommentare

Noch ein kleiner Beitrag für Administratoren, die in Rechenzentren aktiv sind - so als Fingerzeig. Denn es gibt Szenarien, ...

Heiß diskutierte Inhalte
C und C++
Frage1 C Programmierung-Makefile Frage2 PHP-Programmierung HTTP-Fehler 404
Frage von KatalinaC und C++27 Kommentare

Hallo, ich habe 2 Fragen, die nichts miteinander zu tun haben aber mit denen ich mich gerade beschäftige: 1. ...

Linux
Linux Server oder Windows Server - lohnt eine Umstellung auf Linux und ebenso basierende SW bei einer langfristigen Planung?
Frage von motus5Linux27 Kommentare

Wir brauchen bei uns einen neuen Server. Dieser wird als Fileserver, Domäne Controller sowie Exchange Server verwendet. Wir versuchen ...

LAN, WAN, Wireless
Watchguard T15 VPN Einrichtung
gelöst Frage von thomasjayLAN, WAN, Wireless22 Kommentare

Hallo zusammen, wir möchten gerne über unsere Watchguard T15 einen VPN-Tunnel (Mobile VPN with IPSec) einrichten! Als Client nutzen ...

DSL, VDSL
ISP Wechsel auf Vodefone Koax, Gebäudeverkabelung nur per Cat 7
gelöst Frage von wusa88DSL, VDSL19 Kommentare

Hallo Zusammen, ich bin momentan bei Mnet als Glasfaser Kunde und möchte Preis/Leistungs-Technisch zu Kabel Deutschland / Vodafone wechseln. ...