AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Select inkl. berechnung und Formatiereung
Thema durchsuchen
Ansicht
Themen-Optionen

Select inkl. berechnung und Formatiereung

Ein Thema von Tau · begonnen am 9. Nov 2005 · letzter Beitrag vom 11. Nov 2005
Antwort Antwort
Tau

Registriert seit: 17. Mär 2003
Ort: Bludenz
221 Beiträge
 
Delphi 7 Enterprise
 
#1

Select inkl. berechnung und Formatiereung

  Alt 9. Nov 2005, 16:35
Datenbank: MS SQL • Version: 2000 • Zugriff über: ADO
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:
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>
Jetzt mein Frage

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.

Ich hoffe es kann mir einer einen Tipp geben wie ich das Lösen kann, Danke.

schöne Grüsse
Tau
http://www.quad-offroad.com
wer kämpft kann verlieren aber wer nicht kämpft hat verloren
( Delphi 7 )
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Select inkl. berechnung und Formatiereung

  Alt 9. Nov 2005, 17:05
Hallo Tau.

Wenn ich keine Schreibfehler gemacht habe, dann könnte es so funktionieren:

SQL-Code:
SELECT Spalte1, Spalte2, Spalte3,
  CAST(CAST(Spalte1 / 100 * COALESCE(Spalte2, 0) + Spalte1 AS DECIMAL(18, 4))
    AS varchar(20)) + ' ' + Spalte3 AS Expr1
FROM Tabelle1
Grüße vom marabu
  Mit Zitat antworten Zitat
Tau

Registriert seit: 17. Mär 2003
Ort: Bludenz
221 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Select inkl. berechnung und Formatiereung

  Alt 9. Nov 2005, 20:35
Hallo Marabu

Danke für den Tipp

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.


Tau
http://www.quad-offroad.com
wer kämpft kann verlieren aber wer nicht kämpft hat verloren
( Delphi 7 )
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Select inkl. berechnung und Formatiereung

  Alt 10. Nov 2005, 20:46
Hallo Tau,

mein beispielhaftes Statement liefert für den ersten Satz das Ergebnis

Code:
Spalte1              Spalte2              Spalte3     Expr1                           
-------------------  -------------------  ----------  ------------------------------- 
1.605500             10.000000            GSTH       1.7661 GSTH
Welche 0 am Schluß meinst du denn?

marabu
  Mit Zitat antworten Zitat
Tau

Registriert seit: 17. Mär 2003
Ort: Bludenz
221 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Select inkl. berechnung und Formatiereung

  Alt 10. Nov 2005, 22:09
Hallo Marabu

Delphi-Quellcode:
Spalte1 Spalte2 Spalte3 Expr1
------------------- ------------------- ---------- -------------------------------
1.605500 10.000000 GSTH 1.7661 00 GSTH
die 0 bekomme ich in der Spalte Expr1

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
http://www.quad-offroad.com
wer kämpft kann verlieren aber wer nicht kämpft hat verloren
( Delphi 7 )
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Select inkl. berechnung und Formatiereung

  Alt 11. Nov 2005, 05:48
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
  Mit Zitat antworten Zitat
Tau

Registriert seit: 17. Mär 2003
Ort: Bludenz
221 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Select inkl. berechnung und Formatiereung

  Alt 11. Nov 2005, 12:19
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
http://www.quad-offroad.com
wer kämpft kann verlieren aber wer nicht kämpft hat verloren
( Delphi 7 )
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Select inkl. berechnung und Formatiereung

  Alt 11. Nov 2005, 12:43
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
  Mit Zitat antworten Zitat
Tau

Registriert seit: 17. Mär 2003
Ort: Bludenz
221 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Select inkl. berechnung und Formatiereung

  Alt 11. Nov 2005, 19:23
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.


Tau
http://www.quad-offroad.com
wer kämpft kann verlieren aber wer nicht kämpft hat verloren
( Delphi 7 )
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:30 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