![]() |
|
![]() |
#1 |
![]() Neuer Benutzer |
![]() Hallo Zusammen,
habe mal wieder eine etwas für mich knifflige SQL-Abfrage, mit der ich nur die aktuellsten Datensätze erhalten möchte, zusammengebastelt. Zitat: SELECT A.ID, A.iDMC, A.Datum, A.Kommentar, A.KommentarError, A.OPM Ohne die 'Where'-Bedingung bekomme ich nicht nur die aktuellen Datensätze. Könnte mir bitte jemand einen Tipp geben? Danke im Voraus. __________________ Gruß Günter |
![]() |
![]() ![]() |
![]() |
#2 |
![]() MOF Guru |
![]() In der gejointen SubSelect definierst DU einen Alias ... verwendest ihn aber nicht. Vielleicht so:
Code: SELECT A.ID, A.iDMC, A.Datum, A.Kommentar, A.KommentarError, A.OPM FROM dbo.ttbl_Daten AS A INNER JOIN (SELECT B.OPM, MAX(B.Datum) AS MaxDat FROM dbo.ttbl_Daten AS B GROUP BY B.OPM) AS C ON A.OPM = C.OPM AND A.Datum = C.MaxDat WHERE A.iDMC = N'123' __________________ Freundlichen GrußHans-Christian ----------------------------------------- Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren ----------------------------------------- Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx). ----------------------------------------- Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier. |
![]() |
![]() ![]() |
![]() |
#3 |
Threadstarter
![]() ![]() Neuer Benutzer |
![]() Hallo Hans-Christian,
das 'B' ist es nicht, da es von SQL-Manager selbst gelöscht wird, wenn ich es eintrage. Sonst noch eine Idee? __________________ Gruß Günter |
![]() |
![]() ![]() |
![]() |
#4 |
![]() MOF Guru |
![]() Code: SELECT A.ID, A.iDMC, A.Datum, A.Kommentar, A.KommentarError, A.OPM FROM dbo.ttbl_Daten AS A WHERE A.iDMC = N'123' __________________ Freundlichen GrußHans-Christian ----------------------------------------- Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren ----------------------------------------- Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx). ----------------------------------------- Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier. |
![]() |
![]() ![]() |
![]() |
#5 |
Threadstarter
![]() ![]() Neuer Benutzer |
![]() ja, es werden Daten angezeigt.
__________________ Gruß Günter |
![]() |
![]() ![]() |
![]() |
#6 |
![]() MOF Guru |
![]() Und hier sicher auch:
Code: SELECT OPM, MAX(Datum) AS MaxDat FROM dbo.ttbl_Daten WHERE iDMC = N'123' GROUP BY OPM __________________ Freundlichen GrußHans-Christian ----------------------------------------- Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren ----------------------------------------- Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx). ----------------------------------------- Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier. |
![]() |
![]() ![]() |
![]() |
#7 |
Threadstarter
![]() ![]() Neuer Benutzer |
![]() Hallo Hans-Christian,
mit #6 werden nur die aktuellsten Datensätze aus #4 angezeigt. D.h. grundsätzlich ist dies der richtige Vorschlag von dir. Ich habe nur eine Problem, da meine angegeben Abfrage nur Beispiele sind.´und ich bei der "richtigten" Abfrage zu viele Datensätze bekomme. In der Anlage findest du eine Tabelle aus folgender Abfrage Code: SELECT OPM, Datum, iDMC, SPCID, ArbeitsErgebnis, TeileID, PrüfMittel, Auftrag, OP, SPS_Datei, K0014, AG FROM dbo.ttbl_Daten WHERE (iDMC = N'002440600112018010822365804871') GROUP BY OPM, iDMC, SPCID, ArbeitsErgebnis, TeileID, PrüfMittel, Auftrag, OP, SPS_Datei, Datum, K0014, AG Was muss ich in dieser SQL-Abfrage ergänzen um nur Datensätze mit der aktuellsten 'OPM' zu erhalten? __________________ Gruß Günter |
![]() |
![]() ![]() |