AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Gerundete Spalten

Ein Thema von Medium · begonnen am 27. Okt 2008 · letzter Beitrag vom 29. Okt 2008
Antwort Antwort
Seite 1 von 2  1 2      
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#1

Gerundete Spalten

  Alt 27. Okt 2008, 17:49
Datenbank: MySQL • Version: 4.1 • Zugriff über: Zeos
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:
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
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.)

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?
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

Re: Gerundete Spalten

  Alt 27. Okt 2008, 18:03
Versuch es mal mit einem cast auf decimal. SELECT cast( 3.1415927 AS decimal( 3, 2 ) ) //3 Stellen insgesamt, 2 nach den Komma
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Gerundete Spalten

  Alt 27. Okt 2008, 18:11
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 .
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Gerundete Spalten

  Alt 27. Okt 2008, 18:44
Kommentiere mal alle Spalten mit Ausnahme der beiden aus. Vielleicht liegt es z.B. am Feldnamen 'Text'.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Gerundete Spalten

  Alt 27. Okt 2008, 21:16
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!
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Gerundete Spalten

  Alt 28. Okt 2008, 14:17
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
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;
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Neisklar

Registriert seit: 28. Apr 2007
4 Beiträge
 
#7

Re: Gerundete Spalten

  Alt 28. Okt 2008, 15:17
Warum nicht einfach:
ROUND(rp.Anteil_I,2) AS Anteil_I
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Gerundete Spalten

  Alt 28. Okt 2008, 15:36
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.)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Neisklar

Registriert seit: 28. Apr 2007
4 Beiträge
 
#9

Re: Gerundete Spalten

  Alt 28. Okt 2008, 17:56
Ohne drauf rumhacken zu wollen:
http://dev.mysql.com/doc/refman/5.1/...functions.html

steht alles drin
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Gerundete Spalten

  Alt 28. Okt 2008, 18:58
Das war sogar der 2. Link bei einer Googelei nach "mysql round" . 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.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz