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

Frage Entwicklung Datenbanken

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, 5659 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
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 2 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 3 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 3 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 3 TagenSicherheit12 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Firewall
Penetrationstester-Labor - Firewalls
Frage von Oli-nuxFirewall10 Kommentare

Mich würde interessieren warum man beim Einrichten eines Penetrationstester-Labor (VMs) die Firewall der Systeme deaktivieren soll? Hat das nur ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS9 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...

Netzwerkgrundlagen
IPv6 Inter-VLAN Routing
gelöst Frage von clSchakNetzwerkgrundlagen9 Kommentare

Hi ich befasse mich gerade mit der Implementierung von IPv6 was bisher (in einem VLAN) korrekt funktioniert inkl. DNS ...

Windows Netzwerk
Zugriff auf den Desktop Ordner eines anderen Rechners in der gleichen Domäne
gelöst Frage von JensNomaWindows Netzwerk6 Kommentare

Guten Abend, ich war neulich mit unserem Admin am Tisch gesessen. Er an seinem Notebook angemeldet mit dem Domänen-Admin, ...