![]() |
Datenbank: MySQL • Version: 4.1 • Zugriff über: Zeos
Gerundete Spalten
Ich versuche gerade ein paar als Double angelegte Spalten einer Tabelle zur Anzeige gerundet zu selektieren, jedoch haut mir MySQL das Statement immer um die Ohren, obwohl ich der Meinung bin alles nach der MySQL Referenz gebaut zu haben. Hier zunächst mal das Statement:
SQL-Code:
Die interessanten Zeilen sind die mit "CAST" bzw. "CONVERT". Ich habe mittlerweile einige Kombinationen aus CAST/CONVERT mit den Typen Numeric, Float, Real und Decimal durch, aber jedes Mal haut es mich an der gekennzeichneten Stelle {X} mit einem SQL-Syntax Error raus. (Ich hab beide Varianten mit CAST und CONVERT nur zur Anschauung hier gemischt.)
SELECT
rp.Komp_Nr AS Komp_Nr, rp.Prio AS Prio, rp.Rohstoff AS Rohstoff, qt.Text AS Quelle, CONVERT(rp.Anteil_S, {X}REAL(15,2)) AS Anteil_S, CAST(rp.Anteil_I AS FLOAT(15,2)) AS Anteil_I, rp.Status AS Status, rp.Mischzeit AS Mischzeit, rp.ReaktZeit AS ReaktZeit, rp.Tank_Nr AS Tank_Nr, rp.Hand_Auto AS Hand_Auto FROM rpoproz AS rp JOIN qtext AS qt ON rp.Tank_Nr = qt.Nummer WHERE rp.Rez_Nr = :rn ORDER BY Komp_Nr Kann wer meinen vermutlich sehr dämlichen Fehler entdecken, oder aber kennt jemand einen hübscheren Weg auf N Stellen nach dem Komma gerundete Werte zu bekommen? |
Re: Gerundete Spalten
Versuch es mal mit einem cast auf decimal.
SQL-Code:
SELECT cast( 3.1415927 AS decimal( 3, 2 ) ) //3 Stellen insgesamt, 2 nach den Komma
|
Re: Gerundete Spalten
Diese Kombi hatte ich auch schon, leider ohne Erfolg. Auch ein Ändern der Genauigkeit von den üppigen 15 Stellen auf z.B. 3 hat leider nichts gebracht. Ich seh einfach ums Verrecken den Fehler nicht :(.
|
Re: Gerundete Spalten
Kommentiere mal alle Spalten mit Ausnahme der beiden aus. Vielleicht liegt es z.B. am Feldnamen 'Text'.
|
Re: Gerundete Spalten
Das mit dem 'Text' seh ich ja jetzt erst. Verdammte Schlüsselwörter, spucken einem doch immer mal wieder kräftig in die Suppe wenn man alte Paradox DBs nach SQL überführt :). Das klingt recht plausibel, und wenn ich mich morgen Nachmittag hier nicht noch mal verzweifelt einfinde war das die Lösung. Besten Dank!
|
Re: Gerundete Spalten
Das war es leider doch nicht :(. Sowohl das Herausnehmen der Zeile mit 'Text', als auch das Einfassen der Bezeichner in Backticks hat keinerlei Änderung im beschriebenen Fehler bewirkt.
Ich werfe mal die Create Statements der beiden betroffenen Tabellen hier rein, und es wäre super wenn sich jemand fände obiges Select darüber auszuführen, und zu schauen ob der Fehler reproduzierbar ist. Ich bin etwas ratlos :gruebel:
SQL-Code:
CREATE TABLE `qtext` (
`Nummer` int(11) NOT NULL default '0', `Text` varchar(40) default NULL, PRIMARY KEY (`Nummer`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE `rpoproz` ( `Komp_Nr` int(11) NOT NULL default '0', `Rez_Nr` int(11) NOT NULL default '0', `M_Nr` int(11) NOT NULL default '0', `Rohstoff` varchar(25) default NULL, `Tank_Nr` smallint(6) default NULL, `Anteil_S` float default NULL, `Anteil_I` float default NULL, `Ruehrw` int(11) default NULL, `Status` smallint(6) default NULL, `Dichte` float default NULL, `Hand_Auto` char(1) default NULL, `Prio` int(11) default NULL, `Mischzeit` int(11) default NULL, `ReaktZeit` int(11) default NULL, PRIMARY KEY (`Komp_Nr`,`Rez_Nr`,`M_Nr`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
Re: Gerundete Spalten
Warum nicht einfach:
SQL-Code:
ROUND(rp.Anteil_I,2) AS Anteil_I
|
Re: Gerundete Spalten
Weil die "dürftige" (um es mal nett zu sagen) deutsche Hilfe zu MySQL nicht ein einziges Wort darüber verliert, dass man die Stellenanzahl angeben kann :? Das funktioklappt prächtig, besten Dank!
(Ich geb's zu, man hätte es einfach mal drauf ankommen lassen können und es probieren, aber ich war so perplex ob des o.g. Fehlers, darauf kam ich nicht mehr.) |
Re: Gerundete Spalten
Ohne drauf rumhacken zu wollen:
![]() steht alles drin :) |
Re: Gerundete Spalten
Das war sogar der 2. Link bei einer Googelei nach "mysql round" :oops:. Ich hatte nur den ersten betrachtet, da er das Thema explizit zu behandeln schien, und ich irgendwie noch immer Gedanklich bei cast bzw. convert war. Asche auf mein verwirrtes Haupt :)
Trotzdem würde mich noch immer interessieren, was in meinem Statement oben nun falsch sein soll, das Problem an sich ist aber erledigt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz