Office: Gruppierung auf ein Abfrageergebnis

Helfe beim Thema Gruppierung auf ein Abfrageergebnis in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hi zusammen, ich benötige für meinen Suchfilter eine Abfrage und bin auf die schnelle nicht fündig geworden, wie ich diese Konstellation als Select... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Famous, 11. März 2020.

  1. Gruppierung auf ein Abfrageergebnis


    Hi zusammen,

    ich benötige für meinen Suchfilter eine Abfrage und bin auf die schnelle nicht fündig geworden, wie ich diese Konstellation als Select ausdrücke.
    SELECT [03_Inventur_Ticket].InvIDErfassung, [03_Inventur_Ticket].Status, [03_Inventur_Ticket].Fehler, [03_Inventur_Ticket].Fehlerzuordnung
    FROM 03_Inventur_Ticket
    WHERE [03_Inventur_Ticket].Status=3 AND [03_Inventur_Ticket].Fehler=1 AND [03_Inventur_Ticket].Fehlerzuordnung=5;

    Aus diesem Ergebnis (die Zusammensetzung für WHERE kann sich entsprechend der Filterauswahl ändern) benötige ich nur die InvIDErfassung gruppiert, weil ich die gefundenen Datensätze dann zu einer weiteren Tabelle matche und aus diesen Daten eine Liste erstelle.

    Ich habe quasi
    Tabelle 1 - Raumdaten
    Tabelle 2 - Inventurerfassungdaten
    Tabelle 3 - Tickets (1 zu n) zu den Erfassungsdaten

    Mein Formular gibt nun (das funktioniert alles schon) jede Menge Suchmöglichkeiten vor, um auf die Raumdaten und die Erfassungsdaten zu filtern.
    Jetzt möchte ich aber auch ermöglichen, die Erfassungsdaten anzeigen zu lassen, wo es schon offene Tickets etc. gibt, aber möchte natürlich nicht, dass die Daten mehrfach in der Liste auftauchen, nur weil es mehrere Tickets gibt. Daher erst die Suche auf die Tickets und dann das gruppierte Ergebnis für die Suche nach den Erfassungsdaten + Raumdaten ausgeben.

    Versteht ihr mich? *Smilie

    Grüße

    :)
     
    Famous, 11. März 2020
    #1
  2. Code:
     
  3. Vielen Dank! Das geht schon gut.
    Nun möchte ich gern das Ergebnis mit in meine ursprüngliche SELECT Anweisung bringen. Bisher habe ich alle Daten aus Tabelle 1 mit der Daten der Tabelle 2 verglichen (LEFT JOIN auf Koordinate und Serial). Zeige Daten aus Tabelle 1 und wenn vorhanden auch die aus Tabelle 2.
    Jetzt möchte ich umgedreht vorgehen und sagen: zeige diese Daten, wenn du Tickets findest und du dazu etwas in Tabelle 2 und Tabelle 1 findest. Der gemeinsame Nenner ist die IndID aus Tabelle2 und die InvIDErfassung aus Tabelle 3 (03_Inventur_Ticket).

    bisheriges SQL Statement:
    Code:
    Ich nehme an, dass ich die SELECT DISTINCT Anweisung als Teil des JOINs einbauen muss ... aber wie ?!?
     
    Famous, 18. März 2020
    #3
  4. Gruppierung auf ein Abfrageergebnis

    Also als Where ... IN (SELECT ...) funktioniert es, aber die Abfrage ist ziemlich zeitintensiv, da Tabelle 1 und Tabelle 2 ca. 24000 Datensätze enthalten. Das geht doch bestimmt noch geschickter.

    Code:
     
    Famous, 18. März 2020
    #4
  5. Die Abfrage leserlich dargestellt:
    Code:
    So ungeschickt sieht das Abfragedesign noch nicht aus. Die Unterabfrage wird nur einmal ausgeführt. Problematisch wäre eher eine eingebaute Korrelation.

    Kritisch würde ich die lange Liste beim Sortieren ansehen wollen, weil spätestens bei so etwas eine Indexnutzung nicht mehr vorhanden sein wird. Sortieren über mehrere Felder kann richtig Aufwand bedeuten. Teste mal das Weglassen der Sortierung.
    Fehlende Indexnutzung wird bestimmt das erste Problem sein. Gerade bei der Sortier-Auflistung würde man einen zusammengesetzten Index in Betracht ziehen wollen (wenn die Felder aus der gleichen Tabelle kommen).
    Felder, über die verknüpft, gefiltert, gruppiert wird, sind hinsichtlich einer Indizierung selbstredend auch zu betrachten.

    Daneben würde man in Kenntnis des Datenmodells und der Mengenverhältnisse in den beteiligten Tabellen (?!) das Abfragedesign versuchen so zu legen, dass über Filterungen und einschränkende JOIN's Datenmengen bereits anfangs stark gesenkt werden, ehe Mengenvervielfältigungen per vervielfältigenden JOIN's stattfinden.
     
  6. Hallo,

    nur eine Idee dazu...
    da lese ich Inventur in der SQL, denke es ist ev. für einen Bericht!
    Den musst im Bericht sortieren, da nützt dir die Sortierung in der Abfrage sowieso nichts.
     
    Kyron9000, 19. März 2020
    #6
  7. Vielen Dank - ich habe es tatsächlich jetzt erst mal so gelöst, dass ich je nach den ausgefüllten Feldern (im Formular) für die Suche mir die 3 Abfragen auf die 3 Tabellen erstelle und dann entsprechend den String für das FROM zusammenstelle. Verursacht zwar eine etwas aufwendigere IF THEN ELSE, aber das Ergebnis funktioniert hervorragend.
    Sortieren muss sein, denn die aufgebaute SELECT packe ich auf eine Listendarstellung, aus der man dann die Einträge auswählt und weiter bearbeitet / vergleicht und evtl. weitere Tickets / Aktionen dazu erstellt.

    Ich will euch aber glauben, dass es bestimmt noch besser geht. Momentan liegen die 3 Tabellen in einer AccessDB auf dem Netzlaufwerk und 5 Mitarbeiter arbeiten gleichzeitig mit dem Formular in einer AccessDB lokal - Tabellen verknüpft. Die abgefragten Daten müssen also immer über das Netz rauschen und die DB wird oft schnell sehr langsam, was aber durch "schließen und öffnen" bzw. eben komprimieren dann wieder behoben ist.

    Da alles sehr schnell entstanden ist, fehlen natürlich auch Beziehungen zwischen den Tabellen und die indizierten Spalten habe ich mir auch noch nicht angesehen. Es ist alles nur eine sehr schnell entwickelte Lösung. im Moment gefällt sie aber allen sehr und evtl. bekomme ich mehr Zeit für die Entwicklung.
     
    Famous, 30. März 2020
    #7
Thema:

Gruppierung auf ein Abfrageergebnis

Die Seite wird geladen...
  1. Gruppierung auf ein Abfrageergebnis - Similar Threads - Gruppierung Abfrageergebnis

  2. Unmittelbar nebeneinander liegende Gruppierungen erstellen.

    in Microsoft Excel Hilfe
    Unmittelbar nebeneinander liegende Gruppierungen erstellen.: Hallo liebe Excel-Experte, ich möchte gerne unmittelbar nebeneinander liegende Gruppierungen von Spalten erstellen. Das gelingt mir aber nicht. Ich muss immer eine nicht gruppierte Spalte...
  3. Gruppierfeld

    in Microsoft Outlook Hilfe
    Gruppierfeld: Moin zusammen, ich habe in einem Gruppierfeld „Reisekilometer“ Werte drin stehen, die nicht zu der Gruppe gehören. Angezeigt wird die Gruppe mit Reisekilometer: Bestellnummer Tis321483577: 56...
  4. Zwischensummen

    in Microsoft Access Hilfe
    Zwischensummen: Hallo zusammen, ich möchte aus dieser Tabelle ermitteln, wie lange welche Person in welchem Land war. Dabei müssen eventuell mehrere Aufenthalte im gleichen Land zusammengefasst werden. Und es...
  5. Gruppierung beschriften

    in Microsoft Excel Hilfe
    Gruppierung beschriften: Hallo, gibt es eine Möglichkeit Zeilen- oder Spaltengruppierungen zu beschriften/benennen? Die Möglichkeit über eine zusätzliche Zeile oder Spalte ist mir bekannt. Alternative dazu? Grüße,...
  6. Abfrage, Gruppierung und Anzahl bestimmter Werte mit DomAnzahl

    in Microsoft Access Hilfe
    Abfrage, Gruppierung und Anzahl bestimmter Werte mit DomAnzahl: Guten Abend, ich habe eine Tabelle [tbl_Prüfungen] mit den Spalten [Prüfort], [Prüfanlage], [Prüfergebnis]. Als Prüfergebnis gilt 1 als in Ordnung, 0 als nicht in Ordnung. Ein Prüfort enthält...
  7. Gruppierung Bericht aus Kreuztabelle

    in Microsoft Access Hilfe
    Gruppierung Bericht aus Kreuztabelle: Hallo ich habe Probleme bei der Erstellung eines Berichtes aus einer Kreuztabelle. Die Kreuztabelle hat einzelne Standorte in der der Spaltenüberschrift ca. 30 Standorte. In der...
  8. Pivot Tabelle sortiert Monate bei Jahreswechsel nicht richtig

    in Microsoft Excel Hilfe
    Pivot Tabelle sortiert Monate bei Jahreswechsel nicht richtig: Guten Abend! ich habe ein kleines Problem mit einer Pivot-Tabelle und hoffe, dass mir hier jemand helfen kann. In den Quelldaten für die Tabelle hat jeder Datensatz ein fortlaufendes Datum. In...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden