Office: mehrere Spalten bei Unterabfragen

Helfe beim Thema mehrere Spalten bei Unterabfragen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich habe eine Frage zu einer Abfrage, die mit Unterabfragen arbeitet. Ich möchte nicht nur das direkte Ergebnis der Unterabfrage... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Mondgesicht, 5. Mai 2016.

  1. mehrere Spalten bei Unterabfragen


    Hallo zusammen,

    ich habe eine Frage zu einer Abfrage, die mit Unterabfragen arbeitet. Ich möchte nicht nur das direkte Ergebnis der Unterabfrage ausgeben, sondern zusätzlich den Spaltenwert in der Tabelle, auf die sich die Unterabfrage bezieht. Ich versuche es mal etwas konkreter auszudrücken:

    Ich habe zwei Tabellen:

    Tabelle „Planaufträge“:
    Spaltenwerte: Auftragsmenge, Eckstart, Material
    z.B.:
    2000 – 01.04.2016 – 00001
    2500 – 02.05.2016 – 00001
    2400 – 01.03.2016 - 00002

    Tabelle „Kosten“:
    Spaltenwerte: Material, Gültig ab, HK: Material, GK: Material, Kalkulationsgröße
    z.B.:
    00001 – 01.01.2016 – 2,30 – 3,50 – 1
    00001 – 01.02.2016 – 0,24 – 0,36 – 10
    00002 – 03.03.2016 – 3,20 – 4,50 - 5


    Meine bisherige – und auch funktionierende - Abfrage:

    Code:
    Nun will ich den zur Unterabfrage passenden Wert aus der Spalte Kalkulationsgröße (Tabelle „Kosten“) zusätzlich in der Abfrage angezeigt bekommen. Hat jemand eine Idee, wie ich das hinbekommen kann?
    Ich kann die Kostentabelle nicht einfach per Join hinzufügen, sonst kommen viel zu viele Werte heraus.

    Ich hätte außerdem noch eine weitere Frage: Es wird ja von der Tabelle „Planaufträge“ auf die Tabelle „Kosten“ mittels der Spalte „Material“ verlinkt. Wie kann ich es denn noch in meine Abfrage mit reinbringen, dass die komplette Ergebniszeile nicht ausgegeben wird, wenn das Material in der Tabelle „Kosten“ gar nicht gefunden wird oder der Eckstart zeitlich vor dem ersten Gültig-ab-Datum liegt? Eine solche Ergebniszeile sieht bei mir wie folgt aus:
    Bestellmenge – Material – HK: Material – GK: Material
    2400 – 00003 – (leeres Feld) – (leeres Feld)

    Habe bisher noch nie mit Unterabfragen gearbeitet und kenne mich dementsprechend schlecht aus. Danke für Eure Hilfe!

    P.S.: Ich weiß, dass die Spaltenbezeichnungen wie HK: Material nicht optimal sind, das hier ist nur eine frühe Version der deutlich größeren Abfrage mit der ich mal arbeiten will.

    :)
     
    Mondgesicht, 5. Mai 2016
    #1
  2. Moin,

    hast Du mal
    Code:
    ausprobiert? Sollte mich wundern, wenn das nicht ginge.

    Gruß
    Ralf
     
    drambeldier, 6. Mai 2016
    #2
  3. Hallo drambeldier,

    danke für deine Antwort. Wenn ich es so lösen möchte bekomme ich folgende Fehlermeldung in Access mit der ich nichts anfangen kann:

    "Sie haben eine Unterabfrage erstellt, die mehrere Felder zurückgeben kann, ohne im FROM-Abschnitt der Hauptabfrage das reservierte Wort EXISTS zu verwenden. Überarbeiten Sie die SELECT-Anweisung der Unterabfrage so, dass nur ein Feld abgerufen wird."
     
    Mondgesicht, 6. Mai 2016
    #3
  4. mehrere Spalten bei Unterabfragen

    Hi,

    dann liege ich mit meiner Vermutung danehm :-(

    Du könntest anstatt des Materials den Ident des jeweiligen Satzes holen und in einem 2. Schritt das Ergebnis mit den Quelltabellen joinen, dann hättest Du Zugriff auf alle Felder.
    Bist Du sicher? Material 0001 gibt es in beiden Tabellen zweimal.

    Gruß
    Ralf
     
    drambeldier, 7. Mai 2016
    #4
  5. Es ist korrekt: Eine Unterabfrage im SELECT-Teil darf nur genau einen Wert zurückgeben, da in der Hauptabfrage genau ein Feld eines Datensatzes auszuwerten ist.

    Du holst mit zwei(!) Unterabfragen zwei Werte in Deinen Datensatz. Die einfache Lösung wäre also, für den dritten Wert eine gleichartige dritte Unterabfrage einzusetzen.

    Allerdings sollte man bedenken: Zwei, drei Unterabfragen pro Datensatz sind ein gewisser Aufwand, der sich bei einer entsprechenden Anzahl von Datensätzen der Hauptabfrage zu langwierigen bis unerträglichen Laufzeiten summieren kann.

    Man könnte als Alternative versuchen, in einem ersten Schritt die beiden Tabellen zu joinen und auf das Ergebnis dann eine TOP-X-Abfrage aufzusetzen.

    Erster Schritt: Abfrage PK
    Code:
     
    ebs17, 7. Mai 2016
    #5
  6. Eine Unterabfrage wie hier kann nur immer einen Wert zurückgeben, die steht ja anstelle EINES Feldes, hast ja auch nur einen Alias.
    Du musst also eine dritte Unterabfrage erstellen. Da nicht hervorgeht, wie die Kosten ermittelt werden sollen, kann auch kein konkretes Statement geschrieben werden. Aber ich denke, das bekommst du schon hin, nach dem was du bisher geschafft hast *wink.gif*

    ...uuups, Erberhard war ein paar Sekunden schneller
     
  7. Hallo,

    alternativ könnte man auch ein Backend mit weniger angestaubtem SQL-Dialekt verwenden. Z. Bsp kann man mt SQL-Server (Express) CROSS APPLY oder mit PostgreSQL LATERAL verwenden. Hier ist ein SQLFiddle mit Deinen Daten.
     
    Nouba, 7. Mai 2016
    #7
  8. mehrere Spalten bei Unterabfragen

    Danke an alle die mir an diesem schönen Nachmittag geholfen haben. Hab es jetzt hingekriegt - mit der zusätzlichen Unterabfrage, die die Kalkulationsgröße anzeigt war es echt nicht schwierig. Manchmal steht man eben total auf dem Schlauch *tongue.gif*
     
    Mondgesicht, 7. Mai 2016
    #8
  9. Hier zusammengefasst ein Jet-SQL-Vorschlag. In der Tabelle Kosten wurde eine ID eingeführt und verwendet. ID's sollte man sowieso in Stammdatentabellen haben, weil das u.a. zu Abfragevereinfachungen führen kann.
    Code:
     
    ebs17, 7. Mai 2016
    #9
Thema:

mehrere Spalten bei Unterabfragen

Die Seite wird geladen...
  1. mehrere Spalten bei Unterabfragen - Similar Threads - Spalten Unterabfragen

  2. Wie kann ich die x häufigsten Ausdrücke aus einer Spalte ermitteln?

    in Microsoft Excel Hilfe
    Wie kann ich die x häufigsten Ausdrücke aus einer Spalte ermitteln?: Nach umfangreicher Recherche und einigem Probieren konnte ich meine Anforderung noch nicht erfüllen. Nun hoffe ich auf Eure Unterstützung. Für ein Tippspiel importieren wir regelmäßig aus einer...
  3. Wenn ein Wert ein einer Spalte, dann komplette Zeile im anderen Blatt untereinander einfügen.

    in Microsoft Excel Hilfe
    Wenn ein Wert ein einer Spalte, dann komplette Zeile im anderen Blatt untereinander einfügen.: Hallo, kann mir jemand bitte bei folgenderm Helfen. Habe etwas ähnliches gefunden was ich brauche, nur noch eine kleine Änderung ist notwendig. Aufgabe: Es wird geprüft, ob in Spalte Q ein Wert...
  4. Mittelwert aus mehreren Spalten als dynamisches Array

    in Microsoft Excel Hilfe
    Mittelwert aus mehreren Spalten als dynamisches Array: Hallo liebes Forum, ich bin bei folgendem Problem ratlos: Ich berechne für verschiedene Dozenten Feedback anhand von 3 verschiedenen Kriterien. Die Stammdaten der Feedbacks stehen in einer...
  5. Formel in Spalten / Zellen aktivieren

    in Microsoft Excel Hilfe
    Formel in Spalten / Zellen aktivieren: Hallo, ich versuche mich immer noch an einer Tabelle, wo ich mittels Userform Daten hineinkopiere. Formeln in den Spalten F, I und L ebenfalls zu kopieren gelingt mir nicht. Ich suche...
  6. Zwei Dateien vergleichen - Zielinfo in unterschiedlichen Spalten

    in Microsoft Excel Hilfe
    Zwei Dateien vergleichen - Zielinfo in unterschiedlichen Spalten: Hallo, ich benötige eure Unterstützung. Ich habe zwei Dateien (Excel) dahingehend abgleichen ob in der einen Datei (Master) Zieldaten (Boxennummern - jede in einer Zeile) und deren Folgedaten...
  7. Spalte Summieren wenn Monat UND Jahr

    in Microsoft Excel Hilfe
    Spalte Summieren wenn Monat UND Jahr: Hallo Forum, ich scheitere an einem wie ich dachte recht einfachen Problem, aber vielleicht kann mir hier jemand helfen. Ich habe eine Spalte mit einem Datum, und eine Zweite mit einer Summe. Der...
  8. Spalten Sortieren nach Zahlen mit Buchstaben (1a,1b usw)

    in Microsoft Excel Hilfe
    Spalten Sortieren nach Zahlen mit Buchstaben (1a,1b usw): Hallo, ich habe hier eine Bauteileliste erstellt um diese leichter wiederzufinden. Das Problem ist, dass die Baugruppen unterteilt sind (ist ein Kartonbaubogen mit mehreren Hundert Teilen,...
  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