MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > SQL
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 29.10.2016, 14:48   #1
Ramihyn
Neuer Benutzer
Neuer Benutzer
Standard Jet-SQL - Probleme mit SQL

Hallo zusammen,

ich hab da ein Problem mit einem SQL, das ich irgendwie nicht in den Griff bekomme. Über entsprechende Abfragen in Access bekomme ich zwar die Lösung, aber das SQL aus der SQL-Ansicht reicht nicht für meine Zwecke, ich benötige das komplette SQL.

Ausgangslage ist wie folgt: ich habe 3 Tabellen in einer Datenbank:
  • Mandant
  • Produkte
  • Kauf

Die Tabellen Mandant und Kauf sollen per cartesian join verbunden werden, ich will also eine komplette Übersicht aller Mandanten und für jeden sollen alle Produkte aus der entsprechenden Tabelle dargestellt werden.

An das Ergebnis daraus sollen dann alle Käufe aus der Tabelle Kauf gehängt werden, die aus einem bestimmten Jahr sind, z.B. 2016.

Leider übersteigt das meine SQL-Kenntnisse, darum suche ich hier Rat.

Danke !
Ramihyn ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 29.10.2016, 17:08   #2
hcscherzer
MOF Guru
MOF Guru
Standard

Moin. Willkommen im Forum.

Ohne genaue Kenntnis der Struktur lässt sich nur raten, wie die Tabellen miteinander verknüpft sind. Würdest Du bitte einen Screenshot vom Beziehungsfenster senden?
Und es würde auch nicht schaden, die SQL Anweisung, die Du schon mit Hilfe der grafischen Oberfläche erstellt hast, hier zu zeigen.

Zitat:

per cartesian join verbunden

In Jet-SQL gibt es INNER, LEFT, RIGHT JOIN. Und CROSS JOIN.
Letzteres ist ja per Definition das kartesische Produkt.
Bist Du sicher, dass Du alle Mandanten mit allen Produkten verbinden willst?

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.

Geändert von hcscherzer (29.10.2016 um 17:11 Uhr).
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 29.10.2016, 20:09   #3
ebs17
MOF Guru
MOF Guru
Standard

Code:

SELECT 
   V.M_ID, 
   V.P_ID, 
   K.Kaufdatum 
FROM 
   (
      SELECT 
         M.M_ID, 
         P.P_ID 
      FROM 
         Mandant AS M, 
         Produkt AS P 
   ) AS V 
      LEFT JOIN 
         (
            SELECT 
               M_ID, 
               P_ID, 
               Kaufdatum 
            FROM 
               Kauf 
            WHERE 
               Kaufdatum BETWEEN #1/1/2016# AND #12/31/2016# 
         ) AS K 
         ON V.M_ID = K.M_ID 
            AND 
         V.P_ID = K.P_ID

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}
Dein Dankeschön: DBWiki=>Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 30.10.2016, 07:34   #4
Ramihyn
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Guten Morgen,

Danke für die schnellen Antworten !

Zitat: von hcscherzer Beitrag anzeigen

In Jet-SQL gibt es INNER, LEFT, RIGHT JOIN. Und CROSS JOIN.
Letzteres ist ja per Definition das kartesische Produkt.
Bist Du sicher, dass Du alle Mandanten mit allen Produkten verbinden willst?

Beide Tabellen sind zum Glück überschaubar. 14 Mandanten und 10 bis 20 Produkte.
Ich benötige eben genau diese Liste, d.h. es sollen auch nicht gekaufte Produkte angezeigt werden. Im nächsten Schritt sollen dann eben per LEFT join die Käufe drangehangen werden.

Das SQL von ebs17 sollte soweit ich es sehen kann die Lösung bringen. Hab das gerade auf meiner Test-DB nachgebaut und das Ergebnis sieht gut aus. Muss die Tage mal im Büro schauen ob es auch auf der Echt-DB passt, aber ich denke schon.
Knackpunkt für mich waren die Unterabfragen, da ich nicht wusste dass ich die auch benennen kann (bin blutiger SQL-Anfänger).
Vielen Dank auf jeden Fall !

Geändert von Ramihyn (30.10.2016 um 07:45 Uhr).
Ramihyn ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:46 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.