zusammenzählen einer spalte.

Dieses Thema zusammenzählen einer spalte. im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von Lenzi, 19. Mai 2004.

Thema: zusammenzählen einer spalte. hallo, in meiner datenbank hab ich ein feld gesamtsumme, ist bisher ein varchar feld. Jetzt möchte aber von...

  1. hallo,

    in meiner datenbank hab ich ein feld gesamtsumme, ist bisher ein varchar feld. Jetzt möchte aber von mehreren datensätzen die gesamtsumme ausrechnen lassen. jetzt wäre meine erste frage, da ja SUM kein varchar nimmt, welchen feld typ ich da nehmen soll für die gesammtsumme, oder ist es möglich irgendwie dieses varchar feld im sql statement zu konvertieren oder so?


    viele dank füreure hilfe schon mal !!

    servus lenzi
     
  2. Hi

    Für Zahlen würd ich mal sowas wie INTeger Typ probieren :)

    Gruß, Michael
     
  3. naja.. danke ;D

    wenn du mir jetzt noch sagst wie ich bei nem integer ne zahl wie 10,00 oder 0,12 oder mit 10.09 abspeichere dann bin ich mit deiner aussage sehr zufrieden ;)*g*
     
  4. Nichts für ungut, aber wer hat sich diese blödsinnige Datenbankstruktur denn ausgedacht? ;)
    Scheinbar funktioniert mit der ja nichts, was Du vorhast.
    Gar nicht, denn mal . und mal , als Dezimaltrenner funzt eh nicht.
    Ansonsten würde ich Float oder Double, oder wie immer der entsprechende Typ beim SQL Server heisst, nehmen.
    Aber viel wichtiger, ich würde über ein Redesign nachdenken.

    Eddie
     
  5. naja.. jeder fängt mal an und macht n scheiss ;)..

    ich hab jetzt mal das gmacht... ich hab die spalte als float gemacht, hab dann manuell im SQLServer, preise eingegeben wie: 1,00 2,02, hab dann mal probeirt mit SUM() das auszurechnen, das funktionierte.

    jetzt hab i nur das problem, wenn ich in der eingabemaske bei der ASP seite preise wie 1,01 eingebe, und dann auf eintragen klicke, dass er mir dann das speichern nicht zulässt, weil es unmöglich war einen varchar typen in float umzuwandeln.. wieso kann ich aber im SQL Server zahlen mit komma eingeben??

    würd mich über ne antwort freuen, servus
     
  6. Poste mal dein INSERT-Statement bitte... könnte mir vorstellen, dass da der Fehler liegt.

    Greetz
    M.
     
  7. strSQL = INSERT INTO tblBuchungen & _
    (PatientenNummer,LieferantenNummer,ArtikelNummer,ArtikelAnzahl,EinzelPreisPatient,EinzelPreisHausBKP,SummePatient,SummeHausBKP,EintragsDatum,Bearbeiter,AuftragsNummerintern,AuftragsNummerextern,EintragsNummer,anzahlstunden,stundenPreis) & _
    Values ( & _
    -> & strPatientenNummer &->, & _
    -> & strLieferantenNummer &->, & _
    -> & strArtikelNummer &->, & _
    -> & strArtikelAnzahl &->, & _
    -> & strEinzelPreisPatient &->, & _
    -> & strEinzelpreisHausBKP &->, & _
    -> & strPatientenSumme &->, & _
    -> & strSummeHausBKP &->, & _
    -> & strDatum &->, & _
    -> & strBearbeiter &->, & _
    -> & strAuftragsNummerintern &->, & _
    -> & strAuftragsNummerextern &->, & _
    ' & strNummer &->, & _
    ' & strStunden &->, & _
    -> & strStundenPreis &->)


    das wäre mein Code, vielen dank für deine hilfe !!
     
  8. hmm. Das Statement scheint in Ordnung zu sein.... ich selbst habs mal mit PHP (auch mit kleiner Eingabemaske) und ner MySQL-Datenbank versucht. Dort hab ich festgestellt, dass MySQL die Zahlen, die tatsächlich erstmal als String übergeben werden, parst... Eine korrekte Fließkommazahl wird mit nem Punkt als Dezimaltrenner angegeben. Wenn man jetzt statt . ein , nimmt, dann gibts keinen Fehler (jedenfalls bei mir nicht), weil MySQL alle Zahlen speichert, die bis zum ersten falschen Zeichen ermittelt werden konnten. Bei 12,34 wird also die 12 gespeichert. Bei Eingabe von abc wird eine 0 gespeichert...

    Von daher bin ich jetzt auch überfragt... Bekommst du eine definitive Fehlermeldung? Wenn ja, dann auch die mal posten...

    Grüße
    M.
     
  9. es wäre durchaus möglich, dass die Anzeige sich nach der Ländereinstellung des Servers richtet. Dass heisst Dir werden die Zahlen mit Komma als Trenner präsentiert (eventuell kannst Du die Language/Territory Einstellung umstellen. Das ist allerdings mit Vorsicht zu geniessen, da man nie weiss, welche Seiteneffekte eine solche Umstellung hat.

    Nichtsdestotrotz kann die Datenbank halt nur mit echten Werten rechnen, und bei Float/Number Werten ist der Trenner eben der Dezimalpunkt (englisch/amerikanisches System).

    Du könntest zum Beispiel alle varchar Zahlen laden, mittels einer Stringfunktion die Komma in Punkte umwandeln und den entsprechenden Wert in eine (neue?) Spalte einfügen. Falls Du Excel zur Hand hast, kannst Du Dir die Werte ja auch mit Excel umformatieren lassen und die Daten dann neu laden.

    Das ist halt das alte Problem, wie deutsche Zahlenwerte in einer Datenbank gespeichert werden. Die Darstellung von 123.788,00 ist zwar schön, aber der Wert ist und bleibt halt 123788.00.
     
Die Seite wird geladen...

zusammenzählen einer spalte. - Ähnliche Themen

Forum Datum
Zusammenzählen im Excel Microsoft Office Suite 4. Jan. 2009
excel - stunden zusammenzählen aber wie? Microsoft Office Suite 9. Okt. 2004
Fehlermeldung beim remote Login zu meiner IP-Cam Windows 7 Forum Heute um 12:31 Uhr
EXE-Dateien nach einer Zeit nicht mehr ausführbar Windows 8 Forum Sonntag um 21:21 Uhr
Ergebnis einer Google-suche speichern in Favoriten-liste Windows 8 Forum Samstag um 18:16 Uhr