sorozatbol hinyzo szam megtalalasa sql-el
Hali,
Egy tablaban tarolt csoportonkenti szamsorok legkissebb hianyzo szamat kellene megtalalnom. Szoval ha van 1,2,4,5,7,8,9 akkor a legkissebb hianyzo szam a 3-as. Eddig ez a leghasznalhatobb megoldasom :
SELECT item_code + 1 FROM items mo WHERE NOT EXISTS(SELECT NULL FROM items mi WHERE mi.item_code = mo.item_code + 1) ORDER BY item_code LIMIT 1
A gond, hogy egy masik rekordot is figyelembe kell vennem, ami az item_csoport. Tehat abbol a szamsorbol kell a legkissebb hianyzo szam aminek az item_csoportja=xy.
A masik bajom, hogy ha benne van az ORDER akkor hibat general, vagy csak kifagy az sql. Ha nincs benne, akkor pedig a legnagyobb hianyzo szamot kapom.
Megkoszonnem ha valaki tudna egy mukodo megoldast.
Kozben megtalalttam a megoldast mindket kerdesemre. Masnak is kellhet ezert a helyes megoldas :
SELECT item_code + 1 FROM items mo WHERE (NOT EXISTS(SELECT NULL FROM items mi WHERE mi.item_code = mo.item_code + 1)) AND (item_csoport='XY') ORDER BY item_code LIMIT 1
Az order meg azert nem mukodott, mert indexelni kellett a tablat hozza.