Benötigen Sie Hilfe beim Schreiben von SQL-Abfragen, die mehrere Filter für dasselbe Feld einer Tabelle enthalten.SQL-Abfrage zum Abrufen des übergeordneten Elements (Job) ohne angegebene untergeordnete Elemente (Status)
Ich habe 2 Tabellen wie unten gezeigt.
Job
Tabelle:
ID JobId Name StartTime FinishTime
01 001 A 2105:12:10 14:00:00 2105:12:10 14:00:10
02 002 A 2105:12:10 14:00:00 2105:12:10 14:00:00
03 003 A 2105:12:10 14:00:00 2105:12:10 14:00:00
04 004 A 2105:12:10 14:00:00 2105:12:10 14:00:00
und
Status
Tabelle:
ID Status Timestamp JobId
01 Started 2105:12:10 14:00:00 001
02 Step_1_Started 2105:12:10 14:00:00 001
03 Step_1_Finished 2105:12:10 14:00:05 001
04 Step_2_Started 2105:12:10 14:00:05 001
05 Step_2_Finished 2105:12:10 14:00:10 001
06 Finished 2105:12:10 14:00:10 001
........................................................
07 Started 2105:12:10 14:00:00 002
08 Step_1_Started 2105:12:10 14:00:00 002
09 Step_1_Failed 2105:12:10 14:00:02 002
........................................................
10 Started 2105:12:10 14:00:00 003
11 Step_1_Started 2105:12:10 14:00:00 003
12 Step_1_Failed 2105:12:10 14:00:02 003
13 Step_1_Canceled 2105:12:10 14:00:04 003
........................................................
14 Started 2105:12:10 14:00:00 004
15 Step_1_Started 2105:12:10 14:00:00 004
Aus diesen zwei Tabellen I für Jobs abzufragen haben mit Staaten abgeschlossen, ABGESAGT, FAILED und ACTIVE wo
- FERTIG: Ein Job mit dem Status 'Beendet'.
- ABGEBROCHEN: Ein Job mit dem Status '% Storniert', aber nicht ('Beendet').
- FEHLGESCHLAGEN: Ein Job mit dem Status '% Failed', aber nicht ('% Canceled' oder 'Finished').
- Aktiv: Ein Job mit dem Status '% Started', aber nicht ('% Failed' oder '% Canceled' oder 'Finished').
Ich habe die folgende SQL-Abfrage für Finished
die
SELECT
j.jobid
FROM
Job j
JOIN
status js ON j.jobid = js.jobid
WHERE
j.startTime >= '2015:12:10'
AND j.startTtime < '2015:12:20'
AND js.status = 'Finished';
Brauchen Sie Hilfe für andere Abfragen gut funktioniert.
Erwarteter Ausgang:
FINISHED: 001
CANCELED: 003
FAILED: 002
Active: 004
Vielen Dank im Voraus.
Oracle oder mysql? Dies sind zwei verschiedene Produkte. Was hast du bis jetzt gemacht? – Shadow
Verwendung geschachtelte Auswahl kann Ihnen helfen, haben Sie versucht? –
Ich möchte keine datenbankspezifische Abfrage, also habe ich Oracle und MySQL hinzugefügt. – jitk