# Select AS bestimmten Datentyp zuweisen?



## MasterJM (13. Februar 2007)

Tag,

habe zwar schon etwas gesucht, aber benutze wohl die falschen Begriffe.

Folgendes:
Ich habe eine SQL Datenbank. Aus drei Spalten berechne ich einen neuen Wert so:
(`Effektivitaet` / (`Preis` + `Stellplatzpreis`)) AS `Attraktivitaet`
Die drei Spalten sind jeweils vom Datentyp Smallint.
Das Ergebnis wird mir angezeigt als Kommazahl mit zwei Dezimalstellen.
Wie kann ich das ändern? Z.B. 4 Stellen.
Sprich wie kann ich dem Ergebnis einen Datentyp zuweisen?

Thx


----------



## Thomas Darimont (13. Februar 2007)

Hallo,

welches DBMS? Wenn mysql -> format(...) http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html
Damit änderst du den Ergebnistyp in einen String der dem angegeben Format entspricht.

Gruß Tom


----------



## MasterJM (13. Februar 2007)

Thomas Darimont hat gesagt.:


> Hallo,
> 
> welches DBMS? Wenn mysql -> format(...) http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html
> Damit änderst du den Ergebnistyp in einen String der dem angegeben Format entspricht.
> ...



mySQL 4.

Das mit dem Format verstehe ich nicht ganz. Ich möchte keinen String, sondern ein Float mit 4 Stellen z.B.
Der Code daoben ist schon direkt aus dem Select, quasi:
Select (`Effektivitaet` / (`Preis` + `Stellplatzpreis`)) AS `Attraktivitaet` FROM `tab` ...
Und `Attraktivitaet` soll nun nicht 0,25 - sondern als 0,2498 angezeigt werden.

Gruss

EDIT: hab was gefunden: 
(1.00 * `Effektivitaet` / (`Preis` + `Stellplatzpreis`)) AS `Attraktivitaet` 
funktioniert jedenfalls - ist das okay oder sollte man lieber was anderes nutzen?
Sind jetzt nicht viele Zeilen ~50 nur.


----------



## Thomas Darimont (13. Februar 2007)

Hallo,

mein MySQL 5.0.x gibt Fließkommawerte per default mit 4 Stellen nach dem Komma an:

```
mysql> select 1/7;
+--------+
| 1/7    |
+--------+
| 0.1429 |
+--------+
1 row in set (0.00 sec)
```

Schau dir doch mal die cast(...) Funktion an.

Gruß Tom


----------

