Guten Morgen zusammen,
ich benutze einen IBM Informix Server 12.10.
Dort scheitere ich gerade bei der Umsetzung einer Abfrage.
Derzeitiger SQL:
drop table tt_vsgg;
select pool_teile.prod_term,
pool_teile.auftnr,
pool_teile.pos,
pool_teile.artnr,
pool_teile.glasart_bez,
round((pool_teile.breite/1000),0) as breite,
round((pool_teile.hoehe/1000),0) as hoehe,
round((pool_teile.dicke/1000),0) as dicke,
round(((round((pool_teile.breite/1000),0)*(round((pool_teile.hoehe/1000),0)))*pool_teile.menge)/1000000,2) as qm,
pool_teile.menge,
pool_teile.modell_flag,
pool_teile.modell_gruppe,
round(((pool_teile.gewicht_rechteck/1000) * pool_teile.menge),2) as gewicht,
round((pool_teile.gewicht_form/1000),2) as gewicht_form,
pool_teile.lauf
from pool_teile, pool_bearbeit
where pool_teile.auftnr = pool_bearbeit.auftnr
AND pool_teile.pos = pool_bearbeit.pos
AND pool_teile.u_pos = pool_bearbeit.u_pos
AND pool_bearbeit.mzo_id_phys in (150,160,170,180)
AND pool_teile.teile_nr = pool_bearbeit.teile_nr
AND pool_teile.prod_term >= DATE (TODAY) into tt_vsgg;
Nun habe ich aber die Anforderung, dass wenn eine Breite oder eine Höhe Größer als 4000 ist, die Anzahl (pool_teile.menge) in einen Extra Feld geschrieben wird.
Einzeln hätte ich einfach
AND (pool_teile.breite > 4000000 or pool_teile.hoehe > 4000000)
Hinzugefügt. So erreiche ich das aber nur über 2 Tabellen.
Am liebsten wäre es mir,wenn ich in der Temporären Tabelle ein Extra Feld Übermass mit erstelle und jedes Mal wenn die Breite oder Höhe über 4000 (4000000) ist die pool_teile.menge dort eingetragen wird.
Hatte auch erst überlegt, einmal zu sagen, alles was unter 4000 in einer Tabelle zu schreiben und alles was größer ist als 4000 und diese dann zusammen zu führen. Aber weil ja das ODER mit dabei ist, bekomme ich das darüber auch nicht gelöst.
Hat hier jemand einen Ansatz / Idee oder Lösung für mich?
ich benutze einen IBM Informix Server 12.10.
Dort scheitere ich gerade bei der Umsetzung einer Abfrage.
Derzeitiger SQL:
drop table tt_vsgg;
select pool_teile.prod_term,
pool_teile.auftnr,
pool_teile.pos,
pool_teile.artnr,
pool_teile.glasart_bez,
round((pool_teile.breite/1000),0) as breite,
round((pool_teile.hoehe/1000),0) as hoehe,
round((pool_teile.dicke/1000),0) as dicke,
round(((round((pool_teile.breite/1000),0)*(round((pool_teile.hoehe/1000),0)))*pool_teile.menge)/1000000,2) as qm,
pool_teile.menge,
pool_teile.modell_flag,
pool_teile.modell_gruppe,
round(((pool_teile.gewicht_rechteck/1000) * pool_teile.menge),2) as gewicht,
round((pool_teile.gewicht_form/1000),2) as gewicht_form,
pool_teile.lauf
from pool_teile, pool_bearbeit
where pool_teile.auftnr = pool_bearbeit.auftnr
AND pool_teile.pos = pool_bearbeit.pos
AND pool_teile.u_pos = pool_bearbeit.u_pos
AND pool_bearbeit.mzo_id_phys in (150,160,170,180)
AND pool_teile.teile_nr = pool_bearbeit.teile_nr
AND pool_teile.prod_term >= DATE (TODAY) into tt_vsgg;
Nun habe ich aber die Anforderung, dass wenn eine Breite oder eine Höhe Größer als 4000 ist, die Anzahl (pool_teile.menge) in einen Extra Feld geschrieben wird.
Einzeln hätte ich einfach
AND (pool_teile.breite > 4000000 or pool_teile.hoehe > 4000000)
Hinzugefügt. So erreiche ich das aber nur über 2 Tabellen.
Am liebsten wäre es mir,wenn ich in der Temporären Tabelle ein Extra Feld Übermass mit erstelle und jedes Mal wenn die Breite oder Höhe über 4000 (4000000) ist die pool_teile.menge dort eingetragen wird.
Hatte auch erst überlegt, einmal zu sagen, alles was unter 4000 in einer Tabelle zu schreiben und alles was größer ist als 4000 und diese dann zusammen zu führen. Aber weil ja das ODER mit dabei ist, bekomme ich das darüber auch nicht gelöst.
Hat hier jemand einen Ansatz / Idee oder Lösung für mich?