SQL: Mitarbeiter mit größten und kleinsten Gehalt ausgeben. Wie "min" und "max" dranhängen?

Bild 1 - Tabelle - (programmieren, Datenbank, MySQL)

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Es gibt verschiedene Ansätze. Ein einfacher wäre folgender:

SELECT ename, sal, 'min'
FROM emp 
WHERE sal = (SELECT Min(sal) FROM emp)
UNION ALL
SELECT ename, sal, 'max'
FROM emp 
WHERE sal = (SELECT Max(sal) FROM emp)

.

du kannst auch mit order by desc limit 1 und order by asc limit 1 arbeiten . dann hättest du nämlich den datensatz undnicht nur den maximal bzw minimal wert .

Genau! Und wenn der Datensatz zusätzlich geliefert werden soll, kann man beide Ergebnismengen mit UNION verbinden.

1

SQL: Wie kann man Werte innerhalb einer Spalte miteinander vergleichen?

Bisher habe ich das: select count(id) as anzahl,id from freundschaft group by id;

Wie kann ich die Anzahlen der ID miteinander vergleichen, die ja alle in einer gemeinsamen Spalte liegen, und sobald sie denselben Wert haben, möchte ich die dazu gehörende ID-Nummer nebeneinander in 2 Spalten ausgeben lassen? :/

...zur Frage

Kaskadiertes löschen in MySQL?

Hallo zusammen,

ich habe 2 Tabellen: Person, Student.

Die Tabelle Student besitzt einen Fremdschlüssel auf die Personen Tabelle. Nun möchte ich eine Person löschen und der Student soll dabei ebenso kaskadiert gelöscht werden.

Ich habe es mit "on delete cascade from person where id=1; versucht, jedoch funktioniert es nicht, kann jemand helfen?

...zur Frage

Wie kann ich mit einem(!) SQL-Statement das select Ergebnis aus mehreren Tabellen als eine Tabelle vereinheitlichen und ausgeben?

Hab da mal was von "Union" gelesen. Aber so ganz klar ist mir das nicht. Sind das wilde Schachteln?

...zur Frage

SQL Befehl AS

Ich hab da eine Frage zu einem SQL-Befehl:

Eine ganz einfache Abfrage:

SELECT Ort, COUNT(MatrikelNr) AS [AnzahlStudierender] FROM Student GROUP BY Ort HAVING COUNT(MatrikelNr) >= 2

Was bedeutet nun der Befehl AS?? Was generiert dieser? Danke Schön!!

...zur Frage

Kann man ein zweites SELECT statement in einem while loop ausführen?

Hallo,

meine Frage ist einfach:

$sql = "SELECT DISTINCT gruppeid FROM users";
    $result = $con->query($sql);
    while ($row = $result->fetch_assoc()) {
                    .............
    }

ich muss eigentlich in meinem loop spalten aus einer anderen Tabelle mit dieser gruppeid zählen. Aber immer wenn ich in den loop ein weiteres (SELECT...) schreibe und dieses danach einfach erstmal nur abfragen will bekomme ich diesen Fehler: Call to a member function fetch_assoc() on boolean. Deswegen meine Frage, kann man überhaupt in dem loop noch ein SELECT statement schreiben? Und wenn ja, dann wie?

Ich würde mich über eine Antwort freuen ;) schönen Tag noch

...zur Frage

SQL SELECT Berechnung eines Gesammtpreises

Hi,

ich habe ein Problem mit einem SQL SELECT Befehl. Ich glaube ich habe einen Denkfehler und brauche eure Hilfe :)

Problem:

Tabelle Bestellungen 
BestellungsNr (PK), KundenNr
2001              , 1001 
2002              , 1002

Tabelle Bestellpositionen
BestellungsNr (PK), ProduktNr(PK), Menge
2001              , 10001        , 2
2001              , 10021        , 1
2002              , 10001        , 1
2002              , 10021        , 2

Tabelle Produkte
ProduktNr(PK), Preis
10001        , 5.1
10021        , 7.99

Nun möchte ich den Gesamtwert der Bestellung ausgeben. Ich habe nun über INNER JOIN die Tabellen verbunden. Weiß aber nun nicht wie ich das ganze berechnen soll.

Menge * Preis ist Ok. Aber wie bring nun noch die ProduktNr mit rein, damit man weiß welche Menge * Preis genommen werden soll und wie werden dann die anderen Produkt Preise bei einer Bestellung addiert?

Ich hoffe das ist verständlich. Ich möchte also quasi nur die BestellungsNr und den Gesamtwert ausgeben. Der Gesamtwert pro Bestellung soll berechnet werden.

Mein bisheriger Ansatz:

SELECT BestellungsNr, SUM(Gesamtwert) FROM (SELECT (Preis * Menge) AS Gesamtwert FROM Bestellungen 
INNER JOIN Bestellpositionen ON (Bestellungen.BestellungsNr = Bestellpositionen.BestellungsNr)
INNER JOIN Produkte ON (Bestellpositionen.ProduktNr = Produkte.ProduktNr));

Hoffentlich kann mir jemand helfen :)

Gruß

...zur Frage

Was möchtest Du wissen?