![]() |
Datenbank: MS SQL • Version: 2000 • Zugriff über: ADO
Select inkl. berechnung und Formatiereung
Hallo Leute
habe auch wieder mal ein kleines Problem Folgende Daten möchte ich in einen Select abfrage einbinden Spalte1 = Decimal mit 6 Kommastellen Spalte2 = Decimal mit 6 Kommastellen Spalte3 = Varchar (10)
SQL-Code:
Werte in den Spalten
Spalte1 Spalte2 Spalte3 1,568 10 GSTH 756,26 12 EVGHU 2,0254 <NULL> DRB 45,1258 <NULL> WFHI
SQL-Code:
SELECT Spalte1, Spalte2, CAST(Spalte1/ 100 * Spalte2+ Spalte1 AS varchar(20)) + ' ' + Spalte3 AS Expr1
FROM Tabelle1
SQL-Code:
Jetzt mein Frage
Ergebnis Werte in den Spalten
Spalte1 Spalte2 Spalte3 Expr1 1,6055 10 GSTH 1.7660500000000 GSTH 48,367 12 EVGHU 53.2037000000000 EVGHU 2,0254 <NULL> DRB <NULL> 45,1258 <NULL> WFHI <NULL> 1) wie kann ich die überflüssigen 0 beseitigen am Ende der Zahl in der Spalte (Expr1) 2) und wie bekomme ich ein ergebnis in der Spalte (Expr1) wo die <Null> stehen. Das Ergebnis solte so aussehen: Spalte1 + Spalte3 (2,0254 DRB) Stehe bei diesem Problem leider etwas auf dem Schlauch. :wall: :wall: :wall: Ich hoffe es kann mir einer einen Tipp geben wie ich das Lösen kann, Danke. schöne Grüsse Tau :hi: |
Re: Select inkl. berechnung und Formatiereung
Hallo Tau.
Wenn ich keine Schreibfehler gemacht habe, dann könnte es so funktionieren:
SQL-Code:
Grüße vom marabu
SELECT Spalte1, Spalte2, Spalte3,
CAST(CAST(Spalte1 / 100 * COALESCE(Spalte2, 0) + Spalte1 AS DECIMAL(18, 4)) AS varchar(20)) + ' ' + Spalte3 AS Expr1 FROM Tabelle1 |
Re: Select inkl. berechnung und Formatiereung
Hallo Marabu
Danke für den Tipp :thumb: Das Problem Nummer 2 hat sich aufgelöst. es bleibt noch die 0 am schlüss. Ich hoffe es hat noch jemand eine so Gute Ide Danke. :bounce2: Tau :hi: |
Re: Select inkl. berechnung und Formatiereung
Hallo Tau,
mein beispielhaftes Statement liefert für den ersten Satz das Ergebnis
Code:
Welche 0 am Schluß meinst du denn?
Spalte1 Spalte2 Spalte3 Expr1
------------------- ------------------- ---------- ------------------------------- 1.605500 10.000000 GSTH 1.7661 GSTH marabu |
Re: Select inkl. berechnung und Formatiereung
Hallo Marabu
Delphi-Quellcode:
die 0 bekomme ich in der Spalte Expr1
Spalte1 Spalte2 Spalte3 Expr1
------------------- ------------------- ---------- ------------------------------- 1.605500 10.000000 GSTH 1.7661 00 GSTH kann es an der Einstellung am SQL Server liegen? aber am SQL-Server habe ich gar nichts herum geschraubt. oder liegt es vielleicht an der Sortierung bin leider etwas ratlos. Tau :hi: |
Re: Select inkl. berechnung und Formatiereung
Hallo Tau,
kannst du das Statement zeigen, mit dem du diesen output erzeugst? Da muss was bei der Anpassung schief gelaufen sein - schon alleine wegen der Leerstelle vor den beiden Nullen in Expr1. marabu |
Re: Select inkl. berechnung und Formatiereung
Hallo Marabu
Sorry aber das ergebnis sieht so aus ( 1.766100 GSTH ) Ich habe nur volgenden Wert im Select umgestellt von Decimal(18,4) auf Decimal(18,6). Datenfelder fom Type: Spalte1 = Decimal(18,6) Spalte2 = Decimal(18,2) Spalte3 = Varchar(10) Spalten Werte: Spalte1 = 72,47 Spalte2 = 10 Spalte3 = GSTH Ergebnis:
Delphi-Quellcode:
Spalte1 Spalte2 Spalte3 Expr1
------------------- ------------------- ---------- ------------------------------- 72,47 10 GSTH 79.717000 GSTH
SQL-Code:
SELECT Spalte1, Spalte2, Spalte3, CAST(CAST(Spalte1 / 100 * COALESCE (Spalte2, 0) + Spalte1 AS DECIMAL(18, 6)) AS varchar(20)) + ' ' + Spalte3 AS Expr1
FROM Tabelle1 Tau :hi: |
Re: Select inkl. berechnung und Formatiereung
Hallo Tau,
du erhältst beim CAST auf DECIMAL(18, 6) genau so viele Nachkommastellen wie angegeben - DECIMAL ist ein Festkommaformat. Eine variable Zahl an Nachkommastellen wird dir nicht sonderlich helfen, da durch die Abbildung zwischen den Zahlensystemen (10 und 2) in der Regel die von dir erwartete Darstellung nicht mit der internen Speicherung übereinstimmt. Wenn es sich bei deinen Zahlen zufällig um Währungsbeträge handelt, dann sollten 4 Nachkommastellen (Datentyp MONEY) ausreichend sein... Grüße vom marabu |
Re: Select inkl. berechnung und Formatiereung
Hallo Marabu
Ich habe alles in einen CalcField umgestellt und sie da es funktioniert einwandfrei genau so wie ich es brauche. Und der Formatierungs- Möglichkeiten sind keine grenzen. Trotzdem Danke für deine Bemühungen. :thumb: Tau :hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:37 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 by Thomas Breitkreuz