![]() |
kaufmännisches Runden in einer SQL-abfrage
Hallo zusammen,
zum kaufmänischen Runden habe ich hier im Forum folgende Function gefunden:
Delphi-Quellcode:
das funktioniert auch soweit richtig, zumindest habe ich in der Kürze der Zeit keinen Fehler finden können.
function RoundCurrency(const Value:Currency; const nk:Integer):Currency;
const faktors : array[-3..3] of Integer = ( 10000000, 1000000, 100000, 10000, 1000, 100, 10); var x : Int64; y : Int64; begin // Currency hat ja nur 4 Nachkommastellen if (nk>=4) or (Value=0) then begin Result := Value; Exit; end; if nk < Low(faktors) then raise EInvalidArgument.CreateFmt('RoundCurrency(,%d): invalid arg', [nk]); // Currency nach Int64 casten x := PInt64(@Value)^; y := faktors[nk]; if x > 0 then x := ((x+(y div 2)) div y)*y else x := ((x-(y div 2)) div y)*y; // Int64 nach Currency casten Result := PCurrency(@x)^; end; jetzt stellt sich mir folgendes Problem: in einer sql-Abfrage habe ich ein berechnetes feld: ..., (nettopreis + (nettopreis/100 * CAST(:mwstsatz AS NUMERIC(15,2)))) as bruttopreis,.... diese wird für die darstellung im Grid folgendermassen formatiert: TFloatField(FpreiseQuery.Fields[4]).DisplayFormat := '######0.00'; wie kann ich den bruttopreis jetzt kaufmännisch runden ? Danke für eure Ideen. Gruss KH |
Re: kaufmännisches Runden in einer SQL-abfrage
Hallo,
wie wäre es mit Round?
SQL-Code:
Round(nettopreis + (nettopreis/100 * CAST(:mwstsatz AS NUMERIC(15,2)))),2) as bruttopreis
|
Re: kaufmännisches Runden in einer SQL-abfrage
Zitat:
bruttopreis := Round(bruttopreis,2); nicht funktioniert? hier bekomme ich : Error: Wrong number of parameters specified for call to "round" danke gruss KH |
Re: kaufmännisches Runden in einer SQL-abfrage
Meinst Du das Delphi-Round? Das kennt nur einen Parameter, ich vermute, Du suchst RoundTo.
|
Re: kaufmännisches Runden in einer SQL-abfrage
Zitat:
das sind doch 2 parameter, oder seh ich nicht richtig? Round(nettopreis + (nettopreis/100 * CAST(:mwstsatz AS NUMERIC(15,2)))),2) as bruttopreis Gruss Kh |
Re: kaufmännisches Runden in einer SQL-abfrage
Ja, aber das ist Runden in SQL, nicht in Delphi.
|
Re: kaufmännisches Runden in einer SQL-abfrage
Zitat:
aha, das ist also ne sql-funktion! dann ist das CAST in: Round(nettopreis + (nettopreis/100 * CAST(:mwstsatz AS NUMERIC(15,2)))),2) as bruttopreis auch ne sqlfunktion? heisst delphi -funktionen sind im sql-statement nicht möglich? Danke gruss KH |
Re: kaufmännisches Runden in einer SQL-abfrage
Dazu müsste das DBMS ja Delphi verstehen :zwinker:
|
Re: kaufmännisches Runden in einer SQL-abfrage
Zitat:
|
Re: kaufmännisches Runden in einer SQL-abfrage
Zitat:
ich danke euch Gruss Kh |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:42 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