AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi 2 Tabellen in einem Grid?
Thema durchsuchen
Ansicht
Themen-Optionen

2 Tabellen in einem Grid?

Ein Thema von Sharky · begonnen am 16. Jul 2002 · letzter Beitrag vom 17. Jul 2002
 
Alfons_G

Registriert seit: 7. Jun 2002
Ort: München
296 Beiträge
 
Delphi 2007 Architect
 
#5
  Alt 16. Jul 2002, 11:18

Temporäre Tabellen sind auch bei anderen Systemen, wiez.B. bei Oracle problemlos möglich.
Man kann dies aber auch durch Erzeugen und löschen einer normalen Tabelle simulieren, allerdings mit Performance-Einbußen.

Eine Lösung, welche vom jeweiligen SQL-Dialekt unabhängig ist:
Per select-Anweisung die Anzahl verschiedener Adressierungsarten feststellen.
Ausgabetabelle mit CreateTable mit der entsprechenden Spaltenzahl erzeugen.
Abfrage mit Artikelnummer, Adressart und Preis öffnen.
Tabelle in einer Schleife füllen, dabei die Preise in den jeweiligen Spalten eintragen. Du kannst z.B. mit Next die Anzahl Spalten nach vorne gehen, die Werte holen und schreiben.
DBGrid dynamisch erzeugen.

Falls Dir fünf Preisspalten reichen, geht es auch per View.
Zuerst musst Du die Preise nebeneinander bekommen. Das geht mit einer fünffach verschachtelten Abfrage. Ein Beispiel kann ich Dir allerdings nur in Oracle-SQL bringen
Code:
select
  q.ID, q.A_1, q.A_2, q.A_3, q.A_4, p.Preis as A_5 
from
  Tabelle2 p,
  (select
     q.ID, q.A_1, q.A_2, q.A_3, p.Preis as A_4
   from
     Tabelle2 p,
     (select ...
...
   ) q
where
  (q.ID (+)= p.Artikel_id)
  and
  (p.Adressart = 5)
Du erzeugst also zuerst eine Abfrage, welche Adressart 1 mit Preis und ID ergibt. Diese Abfrage ist mit einem Left Join mit der Tabelle verbunden. So wird das gesamte Ergebnis der ersten Abfrage in der zweiten Abfrage mit Adressart 2 verbunden - bis zur Adressart 5.
Das Ergebnis solltest Du allerdings zwischenspeichern, da für 5 Spalten 5^4 Abfragen, also 625 Abfragen ausgeführt werden.

Alfons Grünewald



Alfons Grünewald
  Mit Zitat antworten Zitat
 


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 14:33 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-2025 by Thomas Breitkreuz