Hallo liebe Leute,
ich bin wieder einmal auf der Suche nach einer Lösung.
Ich habe eine Tabelle mit Startnummern,
In dieser sind Nummern von 1- 500 enthalten und die sind in verschiedener Anzahl vorhanden.
Nun möchte ich gerne aus anderen Tabellen eine Abfrage generieren, die feststellt welche die letzte vergebene Nummer ist, bzw. ggf. die erste eines jeden Vorgangs. Soweit sogut, das ist auch kein Problem.
Nun mein Gedanke:
Ich möchte mit einem CASE die Datenbank gleich eine No vergeben lassen die in der Abfrage der vorhandenen No in der Anzahl nicht Null ist . Mein Lösungsanstaz funktioniert leider nicht.
ich bin wieder einmal auf der Suche nach einer Lösung.
Ich habe eine Tabelle mit Startnummern,
Code:
CREATETABLE`snr` ( `id`int(11) NOTNULL, `no`int(3) NOTNULL COMMENT 'start_nummer', `anz`int(3) NOTNULL COMMENT 'anzahl startnummern' ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Nun möchte ich gerne aus anderen Tabellen eine Abfrage generieren, die feststellt welche die letzte vergebene Nummer ist, bzw. ggf. die erste eines jeden Vorgangs. Soweit sogut, das ist auch kein Problem.
Nun mein Gedanke:
Ich möchte mit einem CASE die Datenbank gleich eine No vergeben lassen die in der Abfrage der vorhandenen No in der Anzahl nicht Null ist . Mein Lösungsanstaz funktioniert leider nicht.
Code:
SELECT MIN(`anmeldung`.`Startnummer`) AS `first` , MAX(`anmeldung`.`Startnummer`) AS `last`, `rennen_unter`.`first_snr`, `rennen_unter`.`last_snr`, `rennen_unter`.`comp_name`, CASE WHEN `first` < `last` THEN ( SELECT `snr`.`no` FROM `snr` WHERE `snr`.`no` >`last` AND `snr`.`anz` >0 ORDER BY `snr`.`no` ASC LIMIT 1) ELSE ( SELECT `snr`.`no` FROM `snr` WHERE `snr`.`no` >`first` AND `snr`.`anz` >0 ORDER BY `snr`.`no` ASC LIMIT 1) END FROM `anmeldung` JOIN `rennen_unter` ON `rennen_unter`.`id` = `anmeldung`.`comp_number` WHERE `anmeldung`.`comp_number` = 18
Kommentar