# SQL abfrage mit mehreren Bedingungen.



## Patematthes (8. November 2007)

Hallo erstmal ich weiss nicht ob ich es an dieser Stelle richtig poste, aber ich will es mal versuchen.

Also ich habe zwei Tabellen einmal eine Auftragstabelle und einmal eine Pruefungstabelle, diese sind wie folgt mit Daten bestückt.

auftrag
ID (P)
ID_Baustellenleiter
....

pruefung
ID (P)
ID_Baustellenleiter
Datum
bestanden (Ja/nein)

In der Prüfungstabelle sollen alle je abgelegten Prüfungen gespeichert sein.
(P) steht für den Primärschlüssel.

So nun will ich daraus eine Abfrage machen.
Ich dachte dabei an mehrer If Anweisungen in der while schleife der Ausgabe, aber ich habe keine Ahnung ob das richtig ist.

Die ausgabe soll enthalten:

Alle Baustellenleiter welche in der Tabelle auftrag vorkommen und bei denen das Datum der letzten Prüfung älter als 12 Monate ist, wenn es neuer ist dann nur noch die welche nicht bestanden haben.

Irgendwie habe ich ein Brett vor dem Kopf und würde mich über Hilfe und Tips von eurer Seite aus freuen 

Grüße
Matthias


----------



## Quick_Mik (9. November 2007)

Servus,

meiner Meinung nach brauchst Du eigentlich keine WHERE Klausel, die Bedingungen kann man alle in JOINS abfangen (ergibt ne bessere Laufzeit bei großen Datenmengen)

Probier mal folgendes:

```
select
  *
from
  auftrag
  join pruefung on pruefung.ID_Baustellenleiter = auftrag.ID_Baustellenleiter and (pruefung.Datum <= DATE_SUB(CURRENT_DATE(), INTERVAL 12 MONTH) or pruefung.bestanden = 0)
```

Achtung, ungeprüft 

In dem Beispiel sind MySQL Funktionen enthalten und ich gehe von einem logischen Feld für bestanden aus. Hast Du ein anderes DBMS, such Dir in der Doku die dort verfügbaren Funktionen raus.

Gruß

M.


----------



## Patematthes (9. November 2007)

Danke für die rasche Antwort. Ich werde es am Montag auf der Arbeit direkt ausprobieren und Bericht erstatten


----------



## finzer (16. November 2007)

*Danke Quick_Mik*

Du hast gerade ein Problem gelöst vor dem ich seit gestern Mittag gesessen bin 

Tausend Dank 

Gruss finzer


----------

