Einzelnen Beitrag anzeigen

omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: SQL code zum Prüfen auf Datenänderung

  Alt 3. Feb 2009, 15:54
Ups, sorry habe nicht genau gelesen...

Neuer Vorschlag...
SQL-Code:
SELECT id, MIN(datum) datum, TO_DAYS(CURRENT_TIMESTAMP) - TO_DAYS(MIN(datum)) AS tage
FROM tabelle1 x
WHERE EXISTS (SELECT *
              FROM tabelle1 y
              WHERE EXISTS (SELECT *
                            FROM tabelle1 z
                            WHERE datum = (SELECT MAX(datum)
                                           FROM tabelle1
                                           WHERE id = z.id)
                              AND id = y.id
                              AND wert <> y.wert)
                AND id = x.id
              GROUP BY id
              HAVING x.datum > MAX(datum))
GROUP BY id
Edit: Hier nochmal ein weiterer Vorschlag, für den Sonderfall, dass es keine Änderungen innerhalb einer ID gab...
SQL-Code:
SELECT id, MIN(datum) datum, TO_DAYS(CURRENT_TIMESTAMP) - TO_DAYS(MIN(datum)) AS tage
FROM tabelle1 x
WHERE EXISTS (SELECT *
              FROM tabelle1 y
              WHERE ( EXISTS (SELECT *
                                FROM tabelle1 z
                                WHERE datum = (SELECT MAX(datum)
                                               FROM tabelle1
                                               WHERE id = z.id)
                                  AND id = y.id
                                  AND wert <> y.wert)
                     OR NOT EXISTS (SELECT *
                                    FROM tabelle1
                                    WHERE id = y.id
                                      AND wert <> y.wert))
                AND id = x.id
              GROUP BY id
              HAVING x.datum > MAX(datum)
                  OR (SELECT COUNT(DISTINCT wert)
                      FROM tabelle1
                      WHERE id = y.id) = 1)
GROUP BY id
  Mit Zitat antworten Zitat