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
Next revision Both sides next revision
sql:tutorials:selectrecordwithmaxdatepergroup [09.02.2017 08:59:25]
yaslaw [Einfaches Subquery mit INNER JOIN]
sql:tutorials:selectrecordwithmaxdatepergroup [09.02.2017 09:03:01]
yaslaw [Mittels DMAX() in MS Access]
Line 48: Line 48:
         SELECT w1, w2, MAX(datum) AS max_datum         SELECT w1, w2, MAX(datum) AS max_datum
         FROM kurs         FROM kurs
-        GROUP BY w1, w2;+        GROUP BY w1, w2
     ) AS le     ) AS le
 WHERE WHERE
Line 66: Line 66:
         SELECT w1, w2, MAX(datum) AS max_datum         SELECT w1, w2, MAX(datum) AS max_datum
         FROM kurs         FROM kurs
-        GROUP BY w1, w2;+        GROUP BY w1, w2
     ) AS le     ) AS le
         ON         ON
Line 78: Line 78:
  
 Natürlich kann man das auch mit IN() im WHERE-Bereich erledigen Natürlich kann man das auch mit IN() im WHERE-Bereich erledigen
-<code sql>​SELECT +<code sql>​SELECT k.* 
-    ​k.* +FROM kurs AS k
-FROM +
-    ​kurs AS k+
 WHERE WHERE
     (k.w1, k.w2, k.datum) IN (     (k.w1, k.w2, k.datum) IN (
-        SELECT ​     w1, +        SELECT w1, w2, MAX(datum) AS max_datum 
-                    ​w2, +        FROM kurs 
-                    ​MAX(datum) AS max_datum +        GROUP BY w1, w2 
-        FROM        kurs +    );</​code>​
-        GROUP BY    w1, +
-                    ​w2 +
-    ) +
-;</​code>​+
  
   
Line 98: Line 92:
  
 oder als Korrelierte Unterabfrage oder als Korrelierte Unterabfrage
-<code sql>​SELECT +<code sql>​SELECT k.* 
-    ​k.* +FROM kurs AS k
-FROM +
-    ​kurs AS k+
 WHERE WHERE
     k.datum IN (     k.datum IN (
-        SELECT ​     MAX(datum) AS max_datum +        SELECT MAX(datum) AS max_datum 
-        FROM        kurs +        FROM kurs 
-        WHERE       ​kurs.w1 = k.w1 +        WHERE kurs.w1 = k.w1 AND kurs.w2 = k.w2 
-                    ​AND kurs.w2 = k.w2 +        GROUP BY w1, w2 
-        GROUP BY    w1, +    );</​code>​
-                    ​w2 +
-    ) +
-;</​code>​+
  
 ==== Mittels DMAX() in MS Access ==== ==== Mittels DMAX() in MS Access ====
Line 117: Line 106:
  
 In MS Access kann man auch mit DMAX() arbeiten. Mit DMAX() das aktuelleste Datum auslesen und im WHERE verknüpfen In MS Access kann man auch mit DMAX() arbeiten. Mit DMAX() das aktuelleste Datum auslesen und im WHERE verknüpfen
-<code sql>​SELECT +<code sql>​SELECT k.* 
-    ​k.* +FROM kurs AS k 
-FROM +WHERE k.datum = DMAX("​datum",​ "​kurs",​ "[w1]='" & k.w1 & "' ​AND [w2]='" & k.w2 & "'"​)
-    ​kurs AS k +
-WHERE +
-    ​k.datum = DMAX("​datum",​ "​kurs",​ "​[w1]="​ & k.w1 & " AND [w2]=" & k.w2)+
 ;</​code>​ ;</​code>​
  
sql/tutorials/selectrecordwithmaxdatepergroup.txt · Last modified: 17.10.2019 14:10:04 by yaslaw