Abfrage mehrere Bedingungen gleichzeitig

Hallo,

habe ein Problem mit einer Abfrage, meine Tabelle:

BRP=# select * from testkunden;
 personennr | nachname |           vorname            | geburtsdatum | test1 | test2 | kaufsumme
------------+----------+------------------------------+--------------+-------+-------+-----------
 0000000002 | Meier    | Maria                        | 1990-01-01   | 10111 | 10111 |     10000
 0000000003 | Meier    | Markus und Maria             |              | 10111 | 10111 |     10000
 0000000006 | Huber    | Ariane                       | 1976-01-01   | 10146 | 10166 |     10000
 0000000007 | Huber    | Annabella                    | 1978-01-01   | 10146 | 10166 |     10000
 0000000008 | Huber    | Angela, Ariane und Annabella |              | 10146 | 10166 |     10000
 0000000005 | Huber    | Angela                       | 1970-01-01   | 10155 | 10166 |     10000
 0000000004 | Müller   | Angela                       | 1950-01-01   | 10155 | 10111 |     10000
 0000000001 | Meier    | Markus                       | 1980-01-01   | 10111 | 10111 |     99999
(8 rows)

Meine Abfrage:

BRP=# select * from (select personennr, nachname, vorname, substring(test1 from 4 for 1)::int as bad1, substring(test2 from 5 for 1)::int as bad2, kaufsumme from testkunden) as foo
where (bad1 < 3 and bad2 < 3 and kaufsumme < 10001);
 personennr | nachname |     vorname      | bad1 | bad2 | kaufsumme
------------+----------+------------------+------+------+-----------
 0000000002 | Meier    | Maria            |    1 |    1 |     10000
 0000000003 | Meier    | Markus und Maria |    1 |    1 |     10000
(2 rows)

Mein Problem ist die where-Bedingung. Ich hätte hier gerne noch den Kunden Meier Markus dabei, da die Kaufsumme nur Berücksichtigung finden soll, wenn bad1 und bad2 größer 2 sind.

Mein Wunschergebnis wäre sozusagen:

 0000000002 | Meier    | Maria            |    1 |    1 |     10000
 0000000003 | Meier    | Markus und Maria |    1 |    1 |     10000
 0000000001 | Meier    | Markus  |    1 |    1 |     99999

Ich hoff das ganze ist einigermaßen verständlich ausgedrückt,… steh grad voll aufm Schlauch.
Meine Idee wäre noch ein Subselect, oder gehts evtl einfacher?

Ich verstehe jetzt nicht ganz was du machst, aber warum fügst du die Bedingungen nicht einfach in das where-Statement ein? z.B.

 where (bad1 < 3 and bad2 < 3 and kaufsumme < 10001) or (bad1 > 2 and bad2 > 2)