Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbankspalte teilen (https://www.delphipraxis.net/80060-datenbankspalte-teilen.html)

davar 2. Nov 2006 11:44

Datenbank: MySQL • Version: 4.x • Zugriff über: Zeos

Datenbankspalte teilen
 
Hallo Leute,

ich habe eine DB-Tabelle "Kassenbuch" mit den Feldern "Text", "Art" und "Betrag". Feld "Art" ist varchar(1), darin wird gespeichert, ob es sich um eine Einnahme ("E") oder Ausgabe ("A") handelt.

Nun möchte ich das Kassenbuch mittels Quickreport ausdrucken, jedoch so, dass die Spalte "Betrag" in zwei Spalten aufgeteilt werden soll, wenn es sich um eine Einnahme handelt, soll der Betrag links erscheinen, Ausgaben sollen etwas versetzt rechts erscheinen. Ist das einfach zu realisieren? Wenn ja, wie?

MfG

davar

mkinzler 2. Nov 2006 11:48

Re: Datenbankspalte teilen
 
Als 2 Felder in der Abfrage mit Bedingungen.

bepe 2. Nov 2006 11:50

Re: Datenbankspalte teilen
 
Oder du setzt einfach zwei berechnete Felder nebeneinander. In beiden setzt du eine If-Bedingung und das war's.

Code:
IF(Daten.ART = 'E', Daten.BETRAG, '')

davar 2. Nov 2006 11:52

Re: Datenbankspalte teilen
 
Zitat:

Zitat von mkinzler
Als 2 Felder in der Abfrage mit Bedingungen.

Da komm ich schon ins Stottern. Etwas genauer?

mkinzler 2. Nov 2006 12:02

Re: Datenbankspalte teilen
 
SQL-Code:
Select ...,(IF(ART= 'A',Betrag,NULL) as Ertrag), (IF(ART= 'E',Betrag,NULL) as Aufwand) ..
o.ä., kenn mich in MySQL nicht so aus.

davar 2. Nov 2006 12:23

Re: Datenbankspalte teilen
 
Zitat:

Zitat von mkinzler
SQL-Code:
Select ...,(IF(ART= 'A',Betrag,NULL) as Ertrag), (IF(ART= 'E',Betrag,NULL) as Aufwand) ..
o.ä., kenn mich in MySQL nicht so aus.

Danke. Das ist es gewesen, bloss ohne die Klammern und andersrum.

Delphi-Quellcode:
query.SQL.Text:= 'SELECT IF(art = ''E'', betrag, NULL) as Ertrag, IF(art = ''A'', betrag, NULL) as Aufwand FROM kassenbuch'
führt zum erwünschten Ergebnis.

BlueStarHH 3. Nov 2006 20:46

Re: Datenbankspalte teilen
 
Wie würde das SQL-Statement für Firebird aussehen?

mkinzler 3. Nov 2006 21:07

Re: Datenbankspalte teilen
 
SQL-Code:
IIF( <Bedingung>, <Then>, <Else>)


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:16 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