2.5k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von Experte (1.1k Punkte)
Hallo

Ich habe eine Tabelle mit 21 Einträgen und 22 Spalten. Abgesehen von der ID ist der Rest VARCHAR(200). Jetzt habe ich eine Spalte "Raumschiffe". Da sind aber nur integer werte, obwohl es VARCHAR ist. Meine Frage jetzt:
Wie kann ich alle Raumschiffe von allen 21 Einträgen zusammenzählen? Mit PHP und MySQli, also der oo Variante.
Danke schon jetzt
mfg
TByte

7 Antworten

0 Punkte
Beantwortet von gresti Experte (1.8k Punkte)
Hi TByte,

das geht nicht mit den normalen Sql-Mitteln. Das widerspräche auch dem relationalen Ansatz. (na Mittel gibt es da auch, aber . . grrr)

Ich bin auch Entwickler von Datenbanken auf der Basis MySql und . . .

Eine Datenbank wird auf den Papier entworfen. Dort ist das Nach(Denken) über Abhängigkeiten und viel mehr erstmal angesagt.
Diese Phase kann sehr lange dauern und viele der Entwürfe landen im Mülleimer.

Also lieber Tbyte organisier einfach mal die Strtuktur von deiner Datenbank auf Papier.

lg
gresti
0 Punkte
Beantwortet von Experte (1.1k Punkte)
Hallo
Das hab ich bereits elerdigt, die Datenbank läuft sogar schon und alles ist perfekt. Nur will ich einfach nur die Summe der Werte einer Spalte haben, ohne alles manuell zu machen.

Danke,
mfg
TByte
0 Punkte
Beantwortet von mixmax Experte (2.2k Punkte)
wenn du sicher bist das in der Spalte nur Integerwerte kommen, ist
es eigentlich sehr unsinnig da z.B. für 200000 ein 8 Byte langen
String (7 für den text und 1 Byte wo drin steht das der String 7
Zeichen lang ist) zu speichern, während die Zahl mit einer 4 Byte
Zahl als Zahl gespeichert werden kann.

Vor allem kann die Datenbank mit Strings nicht Addieren, die
Chance das es zu Fehlern kommt oder Abfragen beim einer
Manuellen Aufsummierung plötzlich mehrere Sekunden oder
Minuten dauern ist sehr hoch.

mach Ggfs eine 32 bit oder 64bit Ganzzahl da draus...
(32Bit geht bis 4Milliarden ca, bzw 2Milliarden und -2Milliarden (+/-
2000'000'000)

eine 64 bit geht bis... ehm 16EB bzw +/-8 EB +/-
(8'000'000'000'000'000'000)
0 Punkte
Beantwortet von Experte (1.1k Punkte)
Hallo

Ok, danke, werd ich machen.
Nur wie addier ich dann? Dafür muss MySQL doch funktionen bereitstellen, oder?

MfG
TByte
0 Punkte
Beantwortet von supermax Experte (4.8k Punkte)
Die Summe der Feldinhalte berechnest du mit der Funktion SUM():
SELECT SUM(spaltenname) FROM tabelle WHERE bedingungen


siehe auch mySQL Handbuch
0 Punkte
Beantwortet von supermax Experte (4.8k Punkte)
Das ist der richtige Link:
MySQL Aggregat-Funktionen
0 Punkte
Beantwortet von Experte (1.1k Punkte)
Hallo

Vielen dank!
MfG
TByte
...