AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi nach berechneten Feldern sortieren
Thema durchsuchen
Ansicht
Themen-Optionen

nach berechneten Feldern sortieren

Ein Thema von oki · begonnen am 16. Jul 2004 · letzter Beitrag vom 19. Jul 2004
Antwort Antwort
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#1

nach berechneten Feldern sortieren

  Alt 16. Jul 2004, 11:49
Hi Leute,

ich arbeite schon seit längerer Zeit nicht mehr mit der BDE (mag sie einfach nicht). Aus diesem Grund bin ich da auch nicht mehr so richtig fitt.

Nun muß ich ein älteres Projekt updaten. Seinerzeit habe ich der Einfachheit halber für einfache Datenstrukturen die BDE verwendet. Nun macht es für mich keinen Sinn das ganze Projekt auf ein neues Datenbankformat zu ändern (eigentlich macht mir die Programmierung mit der BDE ja auch keine Schwierigkeiten).

Jetzt bekomme ich aber ein spezielles Problem nicht gelöst. Das sieht folgendermaßen aus:

in der Tabelle gibt es zwei Felder; Einkaufspreis und Verkaufspreis.
Ich habe ein berechnetes Feld "Differenz" eingefügt. Im DBGrid möchte ich dem Anwender nun die Möglichkeit geben die Datensätze nach Differenz zu sortieren oder per Filter eingrenzen zu können.
Ich bekomme nur Meldungen wie "Feld Differenz nicht vorhanden" usw.

Kann mir jemand sagen, wie ich das Thema Sortieren/Filtern bei berechneten Feldern angehen muß? Die OH war da nicht hilfreich.

Dank im Voraus,

Gruß oki
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#2

Re: nach berechneten Feldern sortieren

  Alt 16. Jul 2004, 12:22
Das ist abhängig davon wie du es berechnest.
Berechnest du das Feld in der Abfrage, dürfte es keine Probleme geben:
SQL-Code:
SELECT Feld1
      ,Feld2
      ,abs(Feld1-Feld2) Differenz
FROM DeineTabelle
ORDER BY Differenz
Das macht bei manchen DBMS Probleme, dort würde dann das gehen:
SQL-Code:
SELECT sQ.*
FROM (SELECT Feld1
             ,Feld2
             ,abs(Feld1-Feld2) Differenz
       FROM DeineTabelle) sQ
ORDER BY sQ.Differenz
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#3

Re: nach berechneten Feldern sortieren

  Alt 16. Jul 2004, 14:11
Zitat von Robert_G:
SQL-Code:
SELECT sQ.*
FROM (SELECT Feld1
             ,Feld2
             ,abs(Feld1-Feld2) Differenz
       FROM DeineTabelle) sQ
ORDER BY sQ.Differenz
Und da mault dann wieder MySQL, da dort noch keine Subqueries unterstützt werden... Aber folgender Code sollte auf allen DBS funktionieren:
SQL-Code:
select feld1, feld2, abs(feld1-feld2) as Differenz
from tabelle
order by 3
Gruß,
Tom
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#4

Re: nach berechneten Feldern sortieren

  Alt 16. Jul 2004, 14:22
Hi,

schon mal Dank für die Antworten.

Leider habe ich vergessen zu erwähne, dass ich keine TQuery sondern eine TTable-Kompo (also Standard) verwende. Hier berechne ich die Werte für Differenz zur Laufzeit mittels Ereignis OnCalcFields.
Sortiert wird dann über Setzen der Eigenschaft IndexName (ich hab natürlich Secundärindizes für alle echt "physikalisch" vorhandenen Felder eingerichtet).

So, nu Problem!

Gruß oki
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#5

Re: nach berechneten Feldern sortieren

  Alt 16. Jul 2004, 15:31
Und was spricht jetzt gegen eine TQuery?
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#6

Re: nach berechneten Feldern sortieren

  Alt 19. Jul 2004, 09:31
Hi Jelly,

dann muß ich halt doch umschreiben, und das wollte ich nicht unbedingt. Außerdem dachte ich, dass es nach dem bekannten Motto geht, mann sucht sich tot und wenn einer einem einen Tipp gibt ist das Problem in einer Minute erledigt. Hab da wohl Pech gehabt.

Gruß oki
  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 07:46 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