AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL-Abfrage über 5 tables mit Berechnungen
Thema durchsuchen
Ansicht
Themen-Optionen

SQL-Abfrage über 5 tables mit Berechnungen

Ein Thema von Emilio · begonnen am 23. Sep 2005 · letzter Beitrag vom 25. Sep 2005
Antwort Antwort
Emilio

Registriert seit: 14. Dez 2003
65 Beiträge
 
#1

SQL-Abfrage über 5 tables mit Berechnungen

  Alt 23. Sep 2005, 23:35
Datenbank: DBISAM • Version: 4.17 • Zugriff über: DBISAM
Hi allerseits,

es ist schon eine Ewigkeit her, dass ich über Abfragen Berechungen angestellt habe und ich komme einfach nicht mehr dahinter, wie das anzustellen ist.

Die query sieht bisher so aus (sql-String):
SQL-Code:
SELECT
artgrpid, artgrp, artid, artname, ek, lvp, info, groupsortnr, artstat, agruppe, aklasse, abereich
FROM
art, pli, artcls, artber,artgrup, plist
WHERE
art.artid = pli.artid
AND
plist.statid = pli.status
AND
art.artklass = artcls.artclsid
AND
art.artber= artber.artberid
AND
art.artgrp = artgrup.artgrpid
ORDER BY
artgrup.artgrpid, pli.groupsortnr
funzt so auch prima in Zusammenspiel mit einer DBLookupCombobox. Aber nun kömmt's:

die Daten der query sollen nicht in einem Grid, sondern über DBLabels dargestellt werden.
Ich bräuchte da ein Feld, welches einen berechneten Wert (einen Aufschlag auf den Wert [ek])anzeigt. Der Aufschlag ergibt sich aus einem Aufschlagssatz, welcher in einer anderen table steht und 'gelookuped' werden soll. Mit persistenten Feldern in tables is nich - DBISAM halt. Kann das über eine Ergänzung des o. sql-statements realisiert werden?

Freue mich auf Anregungen - kann durchaus sein, dass ich mal wieder den Wald vor Bäumen nicht seh!

VG Emilio

[edit=Luckie]Luckie[/edit]
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#2

Re: SQL-Abfrage über 5 tables mit Berechnungen

  Alt 24. Sep 2005, 03:37
Du könntest du es mal so versuchen

SQL-Code:
SELECT
artgrpid, artgrp, artid, artname, ek , ((SELECT Aufschlag FROM TabelleXYZ WHERE [artKlasse] = aKlasse) * EK) AS [EK2], lvp, info, groupsortnr, artstat, agruppe, aklasse, abereich
FROM
art, pli, artcls, artber,artgrup, plist
WHERE
art.artid = pli.artid
AND
plist.statid = pli.status
AND
art.artklass = artcls.artclsid
AND
art.artber= artber.artberid
AND
art.artgrp = artgrup.artgrpid
ORDER BY
artgrup.artgrpid, pli.groupsortnr


  Mit Zitat antworten Zitat
marabu

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

Re: SQL-Abfrage über 5 tables mit Berechnungen

  Alt 24. Sep 2005, 07:08
Hi Emilio,

wenn du eine triviale lookup table hast, dann funktioniert neben dem subselect von Jens auch der equi-join. Hast du lookup ranges in der Tabelle mit den Aufschlägen, dann kannst du einen theta-join auch über ein subselect mit dem case operator realisieren. Du hast vergessen, die relavanten Angaben zur lookup table und zur Nachschlagefunktion zu machen, deshalb von mir kein Code. Zum case operator schau einfach mal ins Handbuch - Abschnitt Operatoren.

Grüße vom marabu
  Mit Zitat antworten Zitat
Emilio

Registriert seit: 14. Dez 2003
65 Beiträge
 
#4

Re: SQL-Abfrage über 5 tables mit Berechnungen

  Alt 25. Sep 2005, 13:02
@all,

Danke für Eure Tipps.
Leider bekam ich nur DBISAM-parsing errors.



Nach nur 8 Stunden hab ich dann gemerkt, dass der einfachste Weg der weiterführende ist:

Den SELECT-Abschnitt um die Formel erweitern (Ohne runde Klammern - DBISAM checkt das nicht!), Im FROM-Abschnitt die benötigte Tabelle hinzufügen und im WHERE-Abschnitt die Bedingung/Verknüpfung definieren.

S'duut!

VG Emilio

  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 09:15 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