User Tools

Site Tools


sql:tutorials:selectrecordwithmaxdatepergroup

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
sql:tutorials:selectrecordwithmaxdatepergroup [09.02.2017 09:03:01]
yaslaw [Mittels DMAX() in MS Access]
sql:tutorials:selectrecordwithmaxdatepergroup [17.10.2019 14:10:04] (current)
yaslaw [Ausgangslage]
Line 7: Line 7:
  
 =====Ausgangslage===== =====Ausgangslage=====
-Als Beispiel nehme ich eine einfache Währungskurs-Tabelle. Sie hat pro Währungs-kombination mehrere Einträge. nun mächte ​ich von jeder Kombination den aktuellsten Eintrag auslesen+Als Beispiel nehme ich eine einfache Währungskurs-Tabelle. Sie hat pro Währungs-kombination mehrere Einträge. nun möchte ​ich von jeder Kombination den aktuellsten Eintrag auslesen
 <​code>​[kurs] <​code>​[kurs]
 w1  | w2  | kurs        | datum w1  | w2  | kurs        | datum
Line 116: Line 116:
 Wir können einfach im inneren Query (Abfragedes aktuellen Datums) noch die Bedinung mit dem Datum hinzufügen. Also Datum der Tabelle ist kleiner oder gleich dem Selektionierten Datum. Wir können einfach im inneren Query (Abfragedes aktuellen Datums) noch die Bedinung mit dem Datum hinzufügen. Also Datum der Tabelle ist kleiner oder gleich dem Selektionierten Datum.
 > Der Datumstring ist je nach DBMS. Oracle: TO_DATE('​19.03.2011',​ '​DD.MM.YYYY'​),​ Access: #​03/​19/​2011#​ > Der Datumstring ist je nach DBMS. Oracle: TO_DATE('​19.03.2011',​ '​DD.MM.YYYY'​),​ Access: #​03/​19/​2011#​
-<code sql>​SELECT ​     w1, +<code sql>​SELECT w1, w2, MAX(datum) AS max_datum 
-            ​w2, +FROM kurs 
-            ​MAX(datum) AS max_datum +WHERE datum <= 2011-03-19 
-FROM        kurs +GROUP BY w1, w2
-WHERE       ​datum <= 2011-03-19 +
-GROUP BY    w1, +
-            ​w2+
 ;</​code>​ ;</​code>​
  
 Oder beim DMAX-Beispiel im Access: Oder beim DMAX-Beispiel im Access:
-<code sql>​WHERE +<code sql>​WHERE k.datum = DMAX("​datum",​ "​kurs",​ "[w1]='" & k.w1 & "' ​AND [w2]='" & k.w2 & "' ​AND [datum] <= #​03/​19/​2011#"​)</​code>​
-    ​k.datum = DMAX("​datum",​ "​kurs",​ "​[w1]="​ & k.w1 & " AND [w2]=" & k.w2 & " AND [datum] <= #​03/​19/​2011#"​)</​code>​+
  
  
sql/tutorials/selectrecordwithmaxdatepergroup.1486627381.txt.gz · Last modified: 09.02.2017 09:03:01 by yaslaw