ms-access
Toegang tot SQL
Zoeken…
Inleiding tot Access SQL
Wanneer u Access gebruikt, kunt u gegevens ophalen met behulp van query's. Deze query's zijn gebouwd met Structured Query Language (SQL). Inzicht in SQL is belangrijk omdat het kan helpen bij het bouwen van betere, nuttiger zoekopdrachten.
Bij het maken van query's in Access kunt u overschakelen naar "SQL View". Een voorbeeld van een "selecteer" zoekopdracht wordt hier getoond:
Union (samenvoegen) zoekopdrachten
Als u de resultaten van meerdere tabellen of query's met vergelijkbare velden samen wilt combineren in een enkele resulterende gegevensset zonder relationele joins (dat wil zeggen dat u de ene gegevensset direct na de andere wilt weergeven), gebruikt u een UNION query. Het is echter opmerkelijk dat deze query's handmatig moeten worden gemaakt in SQL View.
Syntaxis van een UNION query is
SELECT
floatingpoint_field AS floatptfld,
text_field
FROM first_table
UNION
SELECT
integer_field,
decimal_field
FROM a_saved_query
UNION
SELECT
1.0,
"hi there Jack"
en retourneert een dataset met twee velden met veldnamen (kolom): floatptfld en text_field
Het is van cruciaal belang dat de gegevenstypen (en gegevensstijlen) voor vervolgens samengevoegde tabellenvelden compatibel zijn met de eerste query in de reeks. Met andere woorden, als de eerste SELECT query een nummer voor de eerste kolom genereert, moet de tweede query ook een nummer in de eerste kolom retourneren. Naast het matchen van typen velden in volgorde, moeten de SELECT instructies hetzelfde aantal velden retourneren. Namen voor de velden van het resulterende gegevensblad worden overgenomen van de eerste tabeldefinitie.
De volgende query zou NIET legaal zijn, omdat tekst niet in decimale gegevens kan worden omgezet en zwevende kommagetallen niet naar gehele getallen kunnen worden geconverteerd (zonder expliciete afkapping of afronding en type-casting).
SELECT
integer_field AS this_really_wont_turn_out_well,
decimal_field
FROM a_saved_query
UNION
SELECT
floatingpoint_field,
text_field
FROM first_table
De functie COUNT ()
U kunt de functie COUNT () gebruiken om het aantal records te retourneren dat overeenkomt met een zoekopdracht. De volgende tabel 'Medewerker' bevat ID-nummers van medewerkers en het bijbehorende ID-nummer van de manager.
| Werknemer | Manager_ID |
|---|---|
| 12 | 37 |
| 22 | 37 |
| 37 | 63 |
| 42 | 45 |
| 45 | 63 |
| 57 | 45 |
| 59 | 45 |
| 63 |
Een COUNT () -instructie kan worden gebruikt om te achterhalen hoeveel werknemers een specifieke manager hebben:
SELECT COUNT(*) AS CNT FROM Employees WHERE Employee.Manager_ID = 37;
geeft terug
| CNT |
|---|
2
De functie kan ook worden gecombineerd in meer gecompliceerde zoekopdrachten. Om te weten te komen hoeveel werknemers rechtstreeks door een bepaalde persoon worden begeleid, kunnen de volgende worden toegepast:
SELECT T1.Employee_ID,
(SELECT COUNT(*) AS CNT FROM Employees AS T2 WHERE T2.Manager_ID =
T1.Employee_ID) AS Supervised_Count
FROM Employees AS T1;
geeft terug:
| Werknemer | Supervised_Count |
|---|---|
| 12 | 0 |
| 22 | 0 |
| 37 | 2 |
| 42 | 0 |
| 45 | 3 |
| 57 | 0 |
| 59 | 0 |
| 63 | 2 |
MSDN-documentatie kan worden gevonden hier .
