Module 7 – Hoofdstuk 5 (4) SQL – voorwaarden aan groepen en meerdere tabellen.
-
Upload
andreas-aalderink -
Category
Documents
-
view
214 -
download
0
Transcript of Module 7 – Hoofdstuk 5 (4) SQL – voorwaarden aan groepen en meerdere tabellen.
Module 7 – Hoofdstuk 5 (4)
SQL – voorwaarden aan groepen en meerdere tabellen
Een voorwaarde gebruiken• Mens
Hoeveel geld heeft het tweewielercentrum per contract ontvangen na 1 februari 1992? Sorteer het resultaat op het bedrag.
• DatabaseSELECT contractnummer, SUM(betaald_bedrag)FROM T_betaling
WHERE betaaldatum > 19990201GROUP BY contractnummer
ORDER BY SUM(betaald_bedrag) ASC
Resultaatcontractnummer SUM(betaald_bedrag)
8 12.5
10 12.5
3 13.0
9 18.0
... ...
Een voorwaarde gebruiken• Mens
Bij welke contracten is er in totaal tot nu toe minder dan 50 euro betaald?Sorteer het resultaat op het bedrag.
• DatabaseSELECT contractnummer, SUM(betaald_bedrag)FROM T_betaling
WHERE SUM(betaald_bedrag) < 50
GROUP BY contractnummer
ORDER BY SUM(betaald_bedrag) ASC
Hoe dan wel?
Een voorwaarde gebruiken• Mens
Bij welke contracten is er in totaal tot nu toe minder dan 50 euro betaald?Sorteer het resultaat op het bedrag.
• DatabaseSELECT contractnummer, SUM(betaald_bedrag)FROM T_betaling
GROUP BY contractnummer
HAVING SUM(betaald_bedrag) < 50
ORDER BY SUM(betaald_bedrag) ASC
Resultaatcontractnummer SUM(betaald_bedrag)
10 16.0
9 24.0
6 41.25
Wat houdt het in?
SELECT contractnummer, SUM(betaald_bedrag)FROM T_betaling
GROUP BY contractnummer
HAVING SUM(betaald_bedrag) < 50
ORDER BY SUM(betaald_bedrag) ASC
• HAVING SUM(betaald_bedrag) < 50— Een voorwaarde die je stelt aan een groep contractnummers— Is hetzelfde als WHERE, maar dan voor groepen
Belangrijke regels
• Een functie (zoals SUM en COUNT) mag voorkomen na het woord SELECT en móet voorkomen na het woord HAVING.
• Een functie mag nooit voorkomen na het woord WHERE (en dus ook niet na de bij de WHERE behorende AND en OR)
Tabellen combineren• Mens
Geef bij elk contract een overzicht van alle gegevensvan dat contract.
• DatabaseSELECT *
FROM T_betaling, T_contract
WHERE T_betaling.contractnummer = T_contract.contractnummer
Resultaat
Wat houdt het in?SELECT *
FROM T_betaling, T_contract
WHERE T_betaling.contractnummer = T_contract.contractnummer
• SELECT * Selecteer alle kolommen
• FROM T_betaling, T_contract
van zowel T_betaling als T_contract• WHERE T_betaling.contractnummer = T_contract.contractnummer
maar alleen de rijen waarvan de contractnummers van beide tabellen aan elkaar gelijk zijn, worden gekoppeld.
Oftewel:
Oftewel:
Oftewel:
Korter noteren
• MensGeef bij elk contract een overzicht van alle gegevens van dat contract
• DatabaseSELECT *
FROM T_betaling AS b, T_contract AS c
WHERE b.contractnummer = c.contractnummer
Resultaat
Wat houdt het in?
SELECT *FROM T_betaling b, T_contract c
WHERE b.contractnummer = c.contractnummer
• FROM T_betaling AS b, T_contract AS c
geef T_betaling het pseudoniem b en T_contract het pseudoniem c
• WHERE b.contractnummer = c.contractnummer
je kunt dan hier het kortere pseudoniem gebruiken