Funzione Partition

Si applica a
Access per Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Restituisce un tipo Variant (String) che indica dove si trova un numero all'interno di una serie calcolata di intervalli.

Sintassi

Partition(number, start, stop, interval)

La sintassi della funzione Partition ha gli argomenti seguenti:

Argomento Descrizione
numero Obbligatorio. Numero intero che si vuole valutare rispetto agli intervalli.
inizio Obbligatorio. Numero intero che corrisponde all'inizio dell'intervallo complessivo di numeri. Il numero non può essere minore di 0.
fine Obbligatorio. Numero intero che corrisponde alla fine dell'intervallo complessivo di numeri. Il numero non può essere uguale o minore di start.
intervallo Obbligatorio. Numero intero che specifica la dimensione delle partizioni all'interno dell'intervallo complessivo di numeri (tra inizio e arresto).

Osservazioni

La funzione Partition identifica l'intervallo specifico in cui rientra il numero e restituisce una variante (stringa) che descrive tale intervallo. La funzione Partition è particolarmente utile nelle query. È possibile creare una query di selezione che mostra il numero di ordini che rientrano in diversi intervalli, ad esempio con valori di ordine da 1 a 1000, da 1001 a 2000 e così via.

Nella tabella seguente viene illustrato come vengono determinati gli intervalli utilizzando tre set di argomenti start, stop e intervallo . Le colonne Primo intervallo e Ultimo intervallo mostrano ciò che Partition restituisce. Gli intervalli sono rappresentati da lowervalue:uppervalue, dove l'estremità inferiore (lowervalue) dell'intervallo è separata dall'estremità superiore (uppervalue) dell'intervallo con i due punti (:).

inizio fermarsi intervallo Prima del primo Primo intervallo Ultimo intervallo Dopo l'ultimo
0 99 5 " :-1" " 0: 4" " 95: 99" " 100: "
20 199 10 " : 19" " 20: 29" " 190: 199" " 200: "
100 1010 20 " : 99" " 100: 119" " 1000: 1010" " 1011: "

Nella tabella mostrata sopra, la terza riga mostra il risultato quando l'avvio e l'arresto definiscono un insieme di numeri che non possono essere divisi equamente per intervallo. L'ultimo intervallo si estende fino all'arresto (11 numeri) anche se l'intervallo è 20.

Se necessario, la funzione Partizione restituisce un intervallo con spazi iniziali sufficienti, in modo che a sinistra e a destra dei due punti vi sia lo stesso numero di caratteri per occlusiva, più uno. In questo modo, se si usa Partition con altri numeri, il testo risultante verrà gestito correttamente durante eventuali operazioni di ordinamento successive.

Se intervallo è 1, l'intervallo è numero:numero, indipendentemente dagli argomenti start e stop . Ad esempio, se interval è 1, number è 100 e stop è 1000, la partizione restituisce " 100: 100".

Se una delle parti è Null, Partition restituisce Null.

Esempi di query

Espressione Risultati
SELECT Partizione(prezzounitario;40.240\20) AS Intervallo prezzi, conteggio(productsales.prezzounitario) AS conteggio FROM productSales GROUP BY partizione(prezzounitario;40\240\20); Crea un set di intervalli per i valori nel campo "prezzounitario" da "start"(40) a "stop"(240) con uguale dimensione "intervallo"(20) e calcola il conteggio di "prezzounitario" nei rispettivi intervalli. Visualizza gli intervalli nella colonna Intervallo prezzo e conteggio nella colonna 'Conteggio'.

Esempio di VBA

Questo esempio presuppone la presenza di una tabella degli ordini contenente un campo relativo alla spedizione. Viene creata una procedura di selezione che conta il numero di ordini per i quali le spese di spedizione rientrano in ognuno dei diversi intervalli. Viene prima di tutto usata la funzione Partition per definire questi intervalli, quindi viene usata la funzione SQL Count che conta il numero di ordini di ogni intervallo. In questo esempio gli argomenti per la funzione Partition sono inizio = 0, fine = 500, intervallo = 50. Il primo intervallo sarà pertanto 0:49 e così via fino a 500.

SELECT DISTINCTROW Partition([freight],0, 500, 50) AS Range,
Count(Orders.Freight) AS Count
FROM Orders
GROUP BY Partition([freight],0,500,50);