SQL Informix - Bedingung aus 2 Strings

furryhamster

Lt. Commander
Registriert
Okt. 2008
Beiträge
1.101
Hi,

ich muss ein SQL-Select schreiben, um einen Wert aus einer Spalte zu selektieren (Typ String, Aufbau: z.B. 2011-07-01).
Die Bedingung besteht aus zwei Strings. Zum einen eine Angabe des Jahres (Aufbau: z.B. 2011/2012) und die Angabe des Monats (01-12).

Jetzt gilt es z.B. wenn als Jahr 2011/2012 und als Monat 01 angeben wird, die Zeile zu selektieren, in der 2012-01-01 drin steht.

Dazu muss ich ja irgendwie dem SQL klarmachen, dass 07-12 zum Jahr 2011 gehört und 01-06 zum Jahr 2012.

Da ich bis jetzt noch keine großen Informix-SQL Kenntnisse habe, könnte ich ein paar Tipps/Ansätze gebrauchen
 
danke, teilweise habe ich es jetzt bereits hinbekommen

so sieht das Ergebnis aus:
SELECT * from st_gs_monat where gs_monat = TO_DATE("02/"||"01/"||SUBSTR('2004/2005', 6, 4), "%m/%d/%iY")

Das Problem besteht jetzt nur noch im Monat. Das Select Statement wird in BIRT zusammengesetzt. Folgedessen wird als Monat z.B. Januar übergeben. Jetzt müsste hieraus jedoch automatisch eine 01 gemacht werden. Habe bereits gegooglt. Das ist dabei rumgekommen:

SELECT * from datum where datum =
WHEN "Januar" == "Januar" THEN TO_DATE("01/"||"01/"||SUBSTR('2004/2005', 6, 4), "%m/%d/%iY")
WHEN "Januar" == "Februar" THEN TO_DATE("02/"||"01/"||SUBSTR('2004/2005', 6, 4), "%m/%d/%iY")
WHEN "Januar" == "März" THEN TO_DATE("03/"||"01/"||SUBSTR('2004/2005', 6, 4), "%m/%d/%iY")
.....
else TO_DATE("12/"||"012/"||SUBSTR('2004/2005', 6, 4), "%m/%d/%iY")

Leider bekomme ich hierbei immer einen Syntax Error. Gehen solche If Bedingungen überhaupt in einem Select?
 
dein sql sieht wie unfall aus.
birt haben meist sehr viele alternativen für datum angaben.
Daher hol dir einfach die Zahl des monat,
alternative wäre case in sql.
 
Zurück
Oben