Coder Social home page Coder Social logo

dbs's Introduction

SQL Queries Datenbanksysteme Hochschule Weserbergland (WI 71/22)

Auswahl aller Produkte mit Bestand größer als 50

SELECT * 
FROM   mydb.produkt 
WHERE  bestand > 50; 

Berechnung des durchschnittlichen Verkaufspreises aller Produkte.

SELECT Avg(vkpreis) AS Durchschnittspreis 
FROM   mydb.produkt; 

Ermitteln der Mitarbeitern mit Rolle

SELECT m.idmitarbeiter AS "Mitarbeiter ID", 
       m.nachname      AS "Nachname", 
       m.vorname       AS "Vorname", 
       r.NAME          AS "Rolle" 
FROM   mydb.mitarbeiter m 
       JOIN mydb.mitarbeiter_hat_rollen mr 
         ON m.idmitarbeiter = mr.mitarbeiter_idmitarbeiter 
       JOIN mydb.rolle r 
         ON mr.rolle_idrolle = r.idrolle; 

Berechnung der Gesamtzahl der Mitarbeiter in jeder Stadt.

SELECT mydb.plz.stadt, 
       Count(*) AS Anzahl_Mitarbeiter 
FROM   mydb.mitarbeiter 
       INNER JOIN mydb.adresse 
               ON mydb.mitarbeiter.adresse_idadresse = mydb.adresse.idadresse 
       INNER JOIN mydb.plz 
               ON mydb.adresse.plz_idplz = mydb.plz.idplz 
GROUP  BY mydb.plz.stadt; 

Auswahl aller Lieferanten, die mehr als 10 Produkte liefern.

SELECT mydb.lieferant.idlieferant, 
       mydb.lieferant.NAME, 
       Count(mydb.produkt_hat_lieferant.produkt_produktid) AS AnzahlProdukte 
FROM   mydb.lieferant 
       INNER JOIN mydb.produkt_hat_lieferant 
               ON mydb.lieferant.idlieferant = 
                  mydb.produkt_hat_lieferant.lieferant_idlieferant 
GROUP  BY mydb.lieferant.idlieferant, 
          mydb.lieferant.NAME 
HAVING Count(mydb.produkt_hat_lieferant.produkt_produktid) > 10; 

Aktualisierung des Bestands eines bestimmten Produkts (Auslösung des Triggers zur Bestellung).

UPDATE mydb.produkt 
SET    bestand = 4
WHERE  idprodukt = 1; 
SELECT * 
FROM   mydb.bestellungen; 

Auswahl aller Produkte, die nicht im Bestand sind

SELECT * 
FROM   mydb.produkt 
WHERE  bestand = 0; 

Ermittlung der Anzahl der Verkäufe pro Produkt.

SELECT produkt_produktid, 
       Count(*) AS Anzahl_Verkaeufe 
FROM   mydb.produktverkauf 
GROUP  BY produkt_produktid; 

Rekursive Anfrage zur Ermittlung aller Vertretungen für eine gegebene Vertretung (idVertretung = 1).

WITH recursive vertretungskette AS 
( 
       SELECT v.idvertretung, 
              v.vertretung_idvertretung, 
              v.vertretungsgrund, 
              m.vorname, 
              m.nachname 
       FROM   mydb.vertretung v 
       JOIN   mydb.mitarbeiter m 
       ON     v.vertretenermitarbeiter_id = m.idmitarbeiter 
       WHERE  v.idvertretung = 1 
       UNION ALL 
       SELECT v.idvertretung, 
              v.vertretung_idvertretung, 
              v.vertretungsgrund, 
              m.vorname, 
              m.nachname 
       FROM   mydb.vertretung v 
       JOIN   vertretungskette 
       ON     v.vertretung_idvertretung = vertretungskette.idvertretung 
       JOIN   mydb.mitarbeiter m 
       ON     v.vertretenermitarbeiter_id = m.idmitarbeiter ) 
SELECT * 
FROM   vertretungskette;

Alle Produkte, welchen einen geringen Bestand haben und noch nicht bestellt sind.

SELECT * 
FROM   mydb.produkt AS p 
WHERE  bestand <= 5 
       AND NOT EXISTS (SELECT 1 
                       FROM   mydb.bestellung_haben_produkte AS bhp 
                              JOIN mydb.bestellungen AS b 
                                ON b.idbestellungen = 
                                   bhp.bestellungen_idbestellungen 
                       WHERE  bhp.produkt_idprodukt = p.idprodukt 
                              AND b.bestellstatus = 'Bestellt'); 

Alle Kategorien auflisten, welche mehr als 5 Produkte haben und sortiere diese absteigend.

SELECT Count(idprodukt) AS Menge, 
       kategorie 
FROM   mydb.produkt 
GROUP  BY kategorie 
HAVING Count(idprodukt) >= 5 
ORDER  BY kategorie DESC; 

Sind alle Produkte im Bestand (Allquantor)

SELECT CASE 
         WHEN NOT EXISTS (SELECT * 
                          FROM   mydb.produkt 
                          WHERE  bestand <= 0) THEN 
         'Ja, alle Produkte sind im Bestand.' 
         ELSE 'Nein, nicht alle Produkte sind im Bestand.' 
       END AS AllquantorErgebnis; 

Alle Adressen ausgeben, die keinem Mitarbeiter zugeordnet sind

SELECT a.straße, 
       a.hausnummer, 
       a.plz_idplz 
FROM   mydb.mitarbeiter m 
       RIGHT OUTER JOIN mydb.adresse a 
                     ON m.adresse_idadresse = a.idadresse 
WHERE  m.idmitarbeiter IS NULL; 

Produktpreise (EK) updaten. Basierend auf der Tabelle Lieferantenpreise

UPDATE mydb.produkt 
SET    ekpreis = (SELECT neuerekpreis 
                  FROM   mydb.lieferantenpreise 
                  WHERE  mydb.produkt.idprodukt = 
                         mydb.lieferantenpreise.produktid 
                  ORDER  BY idlieferantenpreise DESC 
                  LIMIT  1) 
WHERE  EXISTS (SELECT 1 
               FROM   mydb.lieferantenpreise 
               WHERE  mydb.produkt.idprodukt = mydb.lieferantenpreise.produktid) 
; 

dbs's People

Contributors

base2code avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.