ms-access
Accesso SQL
Ricerca…
Introduzione ad Access SQL
Quando si utilizza Access è possibile recuperare i dati utilizzando le query. Queste query vengono create utilizzando Structured Query Language (SQL). La comprensione di SQL è importante perché può aiutare a creare query migliori e più utili.
Quando si creano query in Access, è possibile passare a "Visualizzazione SQL". Un esempio di una query "select" è mostrato qui:
Query Unione (Unisci)
Quando si desidera combinare insieme i risultati di più tabelle o query con campi simili in un singolo set di dati risultante senza eseguire join relazionali (ovvero si desidera elencare un set di dati immediatamente dopo l'altro), verrà utilizzata una query UNION . Tuttavia, è da notare che queste query devono essere create manualmente in Vista SQL.
La sintassi di una query UNION è
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"
e restituirà un set di dati a due campi con nomi di campi (colonne): floatptfld e text_field
È fondamentale che i tipi di dati (e gli stili di dati) per i campi di tabelle successivamente uniti siano compatibili con la prima query della serie. In altre parole, se la prima query SELECT genera un numero per la prima colonna, anche la seconda query deve restituire un numero nella prima colonna. Oltre a corrispondere tipi di campi nell'ordine, le istruzioni SELECT devono restituire lo stesso numero di campi. I nomi per i campi del foglio dati risultante sono ereditati dalla prima definizione di tabella.
La seguente query NON sarebbe legale, poiché il testo non può essere trasformato in dati decimali né i numeri in virgola mobile possono essere convertiti in numeri interi (senza troncamenti espliciti o arrotondamenti e cast di tipi).
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
La funzione COUNT ()
È possibile utilizzare la funzione COUNT () per restituire il numero di record corrispondenti a una query. La seguente tabella 'Dipendente' contiene i numeri ID dei dipendenti e il numero ID del loro responsabile associato.
| Numero Identità dell'impiegato | manager_id |
|---|---|
| 12 | 37 |
| 22 | 37 |
| 37 | 63 |
| 42 | 45 |
| 45 | 63 |
| 57 | 45 |
| 59 | 45 |
| 63 |
È possibile utilizzare un'istruzione COUNT () per scoprire quanti dipendenti hanno un manager specifico:
SELECT COUNT(*) AS CNT FROM Employees WHERE Employee.Manager_ID = 37;
ritorna
| CNT |
|---|
2
La funzione può anche essere combinata in query più complicate. Per scoprire quanti dipendenti sono direttamente controllati da una persona specifica, si può applicare quanto segue:
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;
ritorna:
| Numero Identità dell'impiegato | Supervised_Count |
|---|---|
| 12 | 0 |
| 22 | 0 |
| 37 | 2 |
| 42 | 0 |
| 45 | 3 |
| 57 | 0 |
| 59 | 0 |
| 63 | 2 |
La documentazione MSDN può essere trovata qui .
