SQL Abfrage - Nicht nummerisches Feld summieren
Andreas
- datenbank
Hallo zusammen,
folgendes Problem:
Ich möchte eine SQL-Abfrage an meine Informix Datenbank abschicken.
Dabei will ich ein Feld summieren, was zu folgender Fehlermeldung führt:
Error: Sums and averages cannot be computed for character columns.
Ok, trotz mangelnder Englisch Kenntnisse ist mir nun klar das dies ein nicht nummerisches Feld ist und somit nicht summiert werden kann.
Welche möglichkeiten habe ich diese Abfrage trotzdem durchzuführen?
Den Datentyp in der DB kann ich nicht abändern.
Gibt es eine möglichkeit den Datentyp Temporär nur für diese Abfrage in ein Integer zu konvertieren? Oder kann ich das Problem anderweitig umgehen?
Ich möchte das Ergebniss direkt mit der Abfrage erreichen.
Bin dankbar für jede Hilfe.
Gruß
Andreas
Hallo Andreas,
Ich möchte eine SQL-Abfrage an meine Informix Datenbank abschicken.
Dabei will ich ein Feld summieren, was zu folgender Fehlermeldung führt:
Error: Sums and averages cannot be computed for character columns.
Gibt es eine möglichkeit den Datentyp Temporär nur für diese Abfrage in ein Integer zu konvertieren? Oder kann ich das Problem anderweitig umgehen?
Funktionen, die solche Umwandlungen durchführen, heißen meist CAST() oder CONVERT(). Die Doku Deiner Informix-Version sollte Dir weiterhelfen.
Freundliche Grüße
Vinzenz
echo $begrüßung;
Gibt es eine möglichkeit den Datentyp Temporär nur für diese Abfrage in ein Integer zu konvertieren? Oder kann ich das Problem anderweitig umgehen?
Typumwandlung nennt sich CAST. Mit einer Suche nach informix und cast findet sich ein Hinweis auf CAST AS und den cast operator ::. Mit CAST AS hatte ich keine Erfolg, ich fand auch die Schnelle auch keine Beispiele dazu, aber ein SELECT SUM(textspalte::INT) FROM ... war erfolgreich.
echo "$verabschiedung $name";
Vielen Dank für eure Antworten.
Nachdem ich mich nun auf die Suche gemacht und etliche Dinge durchprobiert habe, muss ich leider sagen das eine Typumwandlung unter Informix nicht möglich ist.
Sämtliche Varianten von cast as, ::, implicit cast, usw... sind blödsinn und funktionieren nicht unter Informix. Leider.
Trotzdem Danke.
Gruß
Entschuldigt bitte meinen Stuss den ich da von mir gegeben habe.
Es funktioniert sehr wohl mit: SUM(CAST(varchar AS integer))
Nochmals Danke für die Schlagwörter.
Gruß