Jörg: sql: Alle IDs suchen, die in Zeitraum x zum ersten Mal vorkamen

Beitrag lesen

Hallo Rolf, hallo Andreas,

SELECT DISTINCT id 
FROM table
WHERE bedingung >= 2021
  AND NOT EXISTS (SELECT DISTINCT id FROM table WHERE bedingung < 2021)

das würde dann auch die finden, deren erstes Vorkommen bei bedingung = 2022 ist.

Paßt nicht so ganz zu

Doch, doch, das wäre schon ok, weil ich die query genau 1 x nutze, nämlich heute. 😉 Insofern spielt auch Performance eine untergeordnete Rolle.

Dummerweise erhalte ich aber keine Ergebnismange.

SELECT DISTINCT
    ID
FROM
    myTable
WHERE
    Auftragsdatum > "2021-01-01" AND NOT EXISTS(
    SELECT DISTINCT
        ID
    FROM
        myTable
    WHERE
        Auftragsdatum < "2021-01-01"
)

Evtl. ist es performanter (das muß man aber ausprobieren), hier mit MINUS zu arbeiten. also

SELECT DISTINCT id FROM TABLE WHERE bedingung = 2021
MINUS
SELECT DISTINCT id FROM TABLE WHERE bedingung < 2021

Diese Query will bei mir gar nicht (mysql).

#1064 - Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei 'MINUS
SELECT DISTINCT ...

Jörg