Server-Daten - Web-Datenbanken zum Mietenbasierend auf den Standards Sql und Xml, einfach und leistungsfähig

Zur Startseite


Das Server-Daten - Forum: Einzelner Thread

 

Zurück zur Forumsstartseite


1. free  16.03.2009 00:42:38Peter de MaasLesen/Editieren   Antworten

Rechnen mit TextenDa hätt ich noch mind. eine Frage, für die ich keine LÖsung finde.
In einer Tabelle hab ich das Feld kihalt, welches die Anzahl der Kinder eines Klienten enthält. Dummerweise erhalte ich beim Versuch die Kinder in der Tabellenspalte der Klienttabelle mit count zu zählen eine Fehlermeldung. Warum wurde mir klar, denn das Feld kihalt ist ein Textfeld. Gibt es nun eine Funktion, die vor Auswerten des Feldes mit count den Inhalt noch in eine Zahl wandeln kann. In Vb gibts zur Variablenumwandlung 'Val(ZahlalsStringvariable)' nur nützt mir das ja in der SQLAbfrage nichts. Vielen Dank für eine Antwort.
Gruß
Peter

2. free  16.03.2009 15:20:10Jürgen AuerLesen/Editieren   Antworten

Re: Rechnen mit Texten> Dummerweise erhalte ich beim Versuch die Kinder in der Tabellenspalte der Klienttabelle mit count zu zählen eine Fehlermeldung.

Das ist dann aber ein anderes Problem.

Count läßt sich per definitionem entweder auf alle Zeilen (Count(*) zählt alle Zeilen) oder auf die nicht leeren Einträge in einer Spalte (Count(kihalt) zählt alle nicht leeren Einträge der Spalte kihalt) anwenden.


Posten Sie mal den Sql-Code.


3. free  21.03.2009 17:29:42Peter de MaasLesen/Editieren   Antworten

Rechnen mit TextenVielleicht habe ich mich falsch ausgedrückt. Die Tabellenspalte enthält jeweils die Anzahl der Kinder (aber Zahl als Text eben) und ich will die Summe der Kinder, nicht die Einträge zählen.
KOnnte mich wegen Headcrash leider jetzt erst wieder melden.
Gruß
Peter

4. free  22.03.2009 14:51:16Jürgen AuerLesen/Editieren   Antworten

Re: Rechnen> Die Tabellenspalte enthält jeweils die Anzahl der Kinder (aber Zahl als Text eben)

dann ist der Datentyp der Spalte falsch, das sollte auf Integer geändert werden.

Ansonsten läßt sich das konvertieren:

Sum(Cast(Spalte as int))


Aber das crasht, wenn in einer Zelle doch Text drinsteht - deshalb ist die Anpassung des Spaltendatentyps der bessere Weg.


5. free  23.03.2009 14:07:25Peter de MaasLesen/Editieren   Antworten

Rechnen mit TextenIch verstehe das schon richtig, es crasht wenn die "Text-zahl" eins drinn stehen würde, nicht aber, wenn "1" als string darainsteht? Bei der Eingabe wird allerdings bereits darauf geprüft, deshalb ist es wohl kein Problem.
Dennoch komme ich da nicht weiter, mein SQL String sieht betreffend dieses Problems so aus:

SELECT Sum(cast([kahalt]as int)) AS Summevonkahalt From tbleroot WHERE (((tbleroot.id) In (SELECT.....

Beim Aufruf in VB erhalte ich dann folgende Fehlermeldung:

Laufzeitfehler (VB Fehler oder SQL ?) 3075: Syntaxfehler (fehlender Operator) in Abfrageausdruck Sum(cast([kahalt]) as int)).

Was ist denn da noch gefragt?
Gruß
Peter


6. free  23.03.2009 17:09:08Jürgen AuerLesen/Editieren   Antworten

Re: Rechnen mit Texten> Laufzeitfehler (VB Fehler oder SQL ?) 3075: Syntaxfehler (fehlender Operator) in Abfrageausdruck Sum(cast([kahalt]) as int))

Da ist eine Klammer nach der Spalte zu viel. Die Syntax von Cast ist

Cast(Spalte as int)


Oben sind das zwei öffnende und drei schließende Klammern. Da das 'as' fehlt, wird der 'fehlende Operator' bemängelt.


7. free  23.03.2009 19:46:46Peter de MaasLesen/Editieren   Antworten

AuswertungsabfrageLeider ist es das nicht. Die Fehlermeldung habe ich wohl fehlerhaft abgeschrieben, die Klammer existiert an dieser stelle gar nicht, nur die eckige. Der Ausdruck über der Fehlermeldung in meinem Post war kopiert und entspricht dem Originalcode. Ich habe aber auch mal die eckige klammer weggelassen, immer erhalte ich die gleiche Fehlermeldung.
Peter

8. free  23.03.2009 20:18:29Jürgen AuerLesen/Editieren   Antworten

Re: Rechnen mit TextenDa oben so viele Klammmern drin sind?

Ist das der MS-SqlServer oder ist das Access? Access kennt wohl diese Funktion nicht. Da wird es aber ebenfalls eine Konvertierungsfunktion geben.

Auswendig weiß ich die auch nicht.


9. free  23.03.2009 23:20:37Peter de MaasLesen/Editieren   Antworten

AuswertungsabfrageWeder noch. Ich glaube das ist die jet-engine von VB. ABer das Problem habe ich wohl gelöst. Habe intuitiv das cast komplett weggelassen und obwohl in der mdb die Felder als text deklariert sind, scheint es innerhalb der jet-engine eine automatische Konvertierung zu geben, denn ich erhalte weder eine Fehlermeldung, aber ein offensichtlich korrektes sum-Ergebnis.
Trotzdem vielen Dank für die Hilfe und viele Grüße
Peter

|<<>>|1 / 91

Zurück zur Forumsstartseite

Zurück zu beispiel.server-daten.de