![]() |
Re: Grid mit gruppierter Darstellung
Jetzt habe ich da mehr ein SQL-technisches Problem...
Ich frage meine beiden Tabellen (Bestellverwaltung) bisher wie folgt ab:
SQL-Code:
In "tblorder" steht der Bestellvorgang, in "tblpos" die entsprechenden Positionen...
SELECT
tblorder."ID", tblorder."BestDatum", tblorder."Lieferant", tblpos."ArtikelNummer", tblpos."ArtikelName", tblpos."EK", tblpos."VK", tblpos."Anzahl" FROM public.tblorder, public.tblpos WHERE tblorder."ID" = tblpos."ID" Wie muss ich diese Abfrage jetzt umstellen, damit ich das mit den "flags" hinbekomme? Irgendwie hats da bei mir noch nicht "klick" gemacht! |
Re: Grid mit gruppierter Darstellung
Versuch mal folgendes (für eine Gruppierung nach "Lieferant"):
SQL-Code:
SELECT
tblorder."ID", tblorder."BestDatum", tblorder."Lieferant", tblpos."ArtikelNummer", tblpos."ArtikelName", tblpos."EK", tblpos."VK", tblpos."Anzahl", 2 as flag FROM public.tblorder, public.tblpos WHERE tblorder."ID" = tblpos."ID" UNION ALL SELECT DISTINCT tblorder."ID", tblorder."BestDatum", tblorder."Lieferant", tblpos."ArtikelNummer", tblpos."ArtikelName", tblpos."EK", tblpos."VK", tblpos."Anzahl", 1 as flag FROM public.tblorder, public.tblpos WHERE tblorder."ID" = tblpos."ID" ORDER BY tblorder."Lieferant", flag |
Re: Grid mit gruppierter Darstellung
Das sieht ganz gut aus, allerdings schmeißt mir PostgreSQL immer als Fehler "fehlender Eintrag in FROM-Klausel für Tabelle tblorder"!
Es gibt für diesen Fehler zwar ein "Workaround", weil man ihn in der Konfiguration unterdrücken kann, aber das kann es ja wohl auch nicht sein. Es muss ja einen Grund dafür geben... :gruebel: |
Re: Grid mit gruppierter Darstellung
Zitat:
Mit PostgreSQL kenne ich mich nicht aus. Das SQL sieht für mich aber erst mal gut aus. Kommt der Fehler denn erst seit der Änderung ? |
Re: Grid mit gruppierter Darstellung
Ja das Grid funktioniert! :thumb:
Allerdings nur mit der alten Abfrage. Er zeichnet mir aber die Gruppierung usw. Das ist alles "schön". Nur diese Sache mit dem aktuellen SQL-Statement raubt mir gerade den Nerv... Ich komme aber ja auch nicht um "UNION" herum, oder? Alles mit einem "SELECT" über beide Tabellen wäre toll, nur dann nützen mir die "flags" wiederum nichts. :wall: EDIT: Ohne "UNION" und beim select von nur einer Tabelle, kommt dieser Fehler nicht. |
Re: Grid mit gruppierter Darstellung
Zitat:
Wenn ich die Funktionsweise des Grids richtig deute, braucht das Grid für die Darstellung der Gruppenzeile einen Datensatz extra. Dieser Datensatz wird mit der UNION möglich gemacht. Zur Unterscheidung wird dann das 'flag' verwendet. Wenn Du also einen zusätzlichen (Gruppen-)Datensatz ohne UNION erzeugen kannst, müßte es auch ohne UNION gehen. Möglicherweise kommt PostgreSQL nicht mit dem UNION ALL klar. Vielleicht gibt es hier andere Möglichkeiten. Nachtrag: Evtl. kann das auch am SELECT DISTINCT liegen. |
Re: Grid mit gruppierter Darstellung
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:
Aber gut ich bin mal nicht so ... siehe Anhang. Das ist ein VirtualStringTree. |
Re: Grid mit gruppierter Darstellung
Liste der Anhänge anzeigen (Anzahl: 1)
Es funktioniert jetzt mit dieser Abfrage:
SQL-Code:
Allerdings zeigt mir die SMDBGrid die Felder "ArtikelNummer", "ArtikelName", "EK" und "VK" jetzt als (MEMO) an?!?!
SELECT DISTINCT
tblorder."ID", tblorder."OrderDate", tblorder."Lieferant", 'a' AS "ArtikelNummer", 'a' AS "ArtikelName", 'a' AS "EK", 'a' AS "VK", 1 as "flag" FROM tblorder, tblpos WHERE tblpos."OrderID" = tblorder."OrderID" UNION ALL SELECT DISTINCT tblorder."OrderID", tblorder_pos."OrderDate", 'a' AS "Lieferant", tblorder_pos."ArtikelNummer", tblorder_pos."ArtikelName", tblorder_pos."EK", tblorder_pos."VK", 2 as "flag" FROM tblorder, tblpos WHERE tblpos."OrderID" = tblorder."OrderID" ORDER BY "OrderID", "flag" Es handelt sich aber um "varchar" Felder in der Datenbank. Kann man da etwas einstellen bzw. verändern? Wobei dieses Problem erst aufgetreten ist, nachdem die SQL-Anweisung entsprechend verändert wurde... Habe mal einen Screenshot angehangen: |
Re: Grid mit gruppierter Darstellung
Zitat:
Da Du die Reihenfolge der SELECTS getauscht hast, werden wahrscheinlich die Datentypen des ersten SELECTs für die Gridspalten verwendet. Eventuell mußt Du die Datentypen mit CAST in einen Datentyp zwingen. In meinem Testprogramm liefert mir das Query 538 Datensätze (inkl. der Gruppensätze). Das Scrollen geht in normaler Geschwindigkeit. Mike |
Re: Grid mit gruppierter Darstellung
Zitat:
Ich hab "mal eben" die Reihenfolge geändert und... "tadaaaa" - jetzt zeigt er mir wieder alle Informationen korrekt an. Du hast mit Deinem Tipp also mal wieder den Nagel auf den Kopf getroffen. :thumb: Danke dafür! :dp: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:23 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