Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Select-Abfragen

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von stefan360, 16 Juli 2013.

  1. stefan360

    stefan360 Neuer Benutzer

    Hallo,

    ich möchte mich zunächst einmal vorstellen:
    Ich bin 26 Jahre alt, studiere Wirtschaftsinformatik im vierten Semester und besuche dieses Semester die Vorlesung Datenbanken.

    Unser Professor hat uns zur Klausur einige Select-Abfragen gegeben, die wir bearbeiten sollen.

    Ich bin mir noch nicht ganz so sicher ob meine Befehle richtig sind, deswegen habe ich gehofft, dass Ihr mal einen Blick drauf werfen könnt und mir vielleicht helfen könnt, wo ich noch Fehler machen.

    Ausgangspunkt: Lieferpositionstabelle mit FS KundenID und ArtikelID
    Artikelauswahl für einen bestimmten statischen Berichtszeitraum.
    Man soll auch Venn Diagramme dazu zeichnen.


    Fragen:

    1. Artikel, die ausschließlich von X und genau einem weiteren Kunden gekauft wurden

    Mein Ansatz:

    Select LArtID
    From Lieferpositionen
    Where LKdID = X
    Not IN
    Where LKdID != X
    Intersect
    Group by LArtID
    Having Count ( Distinct LkdID = 1);

    2. Artikel, die ausschließlich sowohl von X als auch von y aber von keinem anderen Kunden gekauft wurden.

    Mein Ansatz:

    Select LArtId
    From Lieferpositionen
    (Where LKdID = x
    Intersect
    Where LKdID = y)
    Not IN
    Where LKdID != x And LKdID != y;

    3. Alle Artikel die u.a von x gekauft werden
    a. Umsatzmenge dieser Artikel beim Kunden X
    b. Umsatzmenge dieser Artikel bei allen Kunden

    Mein Ansatz:

    a.

    Select* Sum(Artikelpreis) As Umsatz
    From Lieferpositionen
    Where LKdID = X;

    b.

    Select* Sum(Preis) As Umsatz
    From Lieferpositionen
    inner Join Kunden
    On LKdID = KdID;


    Diagramme :

    20130716_125946.jpg
     
  2. akretschmer

    akretschmer Datenbank-Guru


    Warum probierst es nicht aus? Da sieht man doch recht schnell, ob es geht. Bist ja nah dran ...

    Code:
    test=*# select * from lieferungen ;
     kunde | artikel
    -------+---------
         1 |       1
         1 |       2
         2 |       1
         2 |       2
         3 |       2
         3 |       1
         1 |       4
         2 |       4
    (8 rows)
    
    test=*# select artikel from lieferungen where kunde = 1 intersect select artikel from lieferungen where kunde != 1 group by artikel having count(kunde) = 1;
     artikel
    ---------
           4
    (1 row)
    
    Und so weiter ...
     
  3. stefan360

    stefan360 Neuer Benutzer

    Keine Zeit, schreib morgen ne Prüfung und am Freitag Datenbanken.
    Normalerweise müsste es schon so gemacht werden aber das schaffte ich nichtmehr.
    Vielleicht möchtest du auch so etwas dazu sagen.

    MFG

    Stefan
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Ja, Deine SQL's strotzen vor Syntaxfehlern. Das wird wohl schief gehen in der Prüfung ...
     
  5. stefan360

    stefan360 Neuer Benutzer

    Das hilf mir sehr, danke!
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden