Twilo: Postgresql 7.4: Datensätze löschen

Beitrag lesen

Hallo,

ich möchte bestimmte Datensätze in einer Tabelle löschen, die ich vorher per SQL ermittelt habe

CREATE TEMPORARY TABLE z AS  
    SELECT DISTINCT reg_id, bez_id, typ, lfdnr, gueltigab  
    FROM finanzen a1  
    WHERE TO_CHAR(a1.gueltigab, 'YYYY-MM-DD') IN (  
    SELECT gueltigab FROM (  
        SELECT foo.reg_id, foo.bez_id, foo.typ, foo.lfdnr, TO_CHAR(foo.gueltigab, 'YYYY-MM-DD') as gueltigab, count(foo.gueltigab) FROM (  
            SELECT DISTINCT reg_id, bez_id, typ, lfdnr, gueltigab FROM finanzen  
        ) as foo  
        GROUP BY foo.reg_id, foo.bez_id, foo.typ, foo.lfdnr, TO_CHAR(foo.gueltigab, 'YYYY-MM-DD')  
        ORDER BY foo.reg_id, foo.bez_id, foo.typ, foo.lfdnr, TO_CHAR(foo.gueltigab, 'YYYY-MM-DD')  
    )as bar  
    WHERE bar.count > 1 AND a1.reg_id = bar.reg_id AND a1.typ = bar.typ AND a1.lfdnr = bar.lfdnr AND bar.gueltigab = TO_CHAR(a1.gueltigab, 'YYYY-MM-DD')  
);  
  
CREATE TEMPORARY TABLE y AS  
    SELECT reg_id, bez_id, typ, lfdnr, gueltigab  
    FROM finanzen b1  
    WHERE  
        gueltigab in (SELECT gueltigab FROM z WHERE b1.reg_id = z.reg_id AND b1.typ = z.typ AND b1.lfdnr = z.lfdnr)  
    and gueltigab != (SELECT MAX(gueltigab) FROM z WHERE b1.reg_id = z.reg_id AND b1.typ = z.typ AND b1.lfdnr = z.lfdnr);

in der Tabelle y steht dann ungefähr folgendes drin

reg_id | bez_id | typ | lfdnr |      gueltigab
--------+--------+-----+-------+---------------------
    246 |      2 | E   |     1 | 2006-11-01 16:02:13
    246 |      2 | A   |     4 | 2006-11-01 16:02:13
    246 |      2 | A   |     5 | 2006-11-01 16:02:13
    246 |      2 | A   |     6 | 2006-11-01 16:02:13
    246 |      2 | A   |     7 | 2006-11-01 16:02:13
    246 |      2 | A   |     1 | 2006-11-01 16:02:13
    246 |      2 | A   |     2 | 2006-11-01 16:02:13
[...]
(812 Zeilen)

wie müsste jetzt mein DELETE SQL Statement aussehen?

DELETE FROM finanzen WHERE ?
die Where Klausel müßte ungefähr so aussehen "reg_id = y.reg_id and bez_id = y.bez_id an typ = y.typ and lfdnr = y.lfdnr and gueltigab = y.gueltigab"

Ab Postgresql 8.1 kann man dafür wohl USING verwenden - wie löse ich das aber mit Postgresql 7.4?

mfg
Twilo