Query 200 record

di il
6 risposte

Query 200 record

Ho una tabella con oltre 32000 record

come posso scrivere una query che mi visulizzi solo gli ultimi 200 record? in modo da velocizzare la visualizzazione?

query selezione primo 200 record

6 Risposte

  • Re: Query 200 record

    Se hai un campo contatore, includilo nella query. Imposta Ordinamento Crescente sul campo contatore. Poi a Criteri (in corrispondenza sempre del campo contatore), scrivi la seguente sintassi:
    >31800
    Ho scritto 31800 presupponendo che tu abbia una numerazione progressiva integra. Se ti sono saltati alcuni numeri, per via di cancellazioni precedenti, devi inserire un numero equivalente al tuo attaule 31800esimo record.
  • Re: Query 200 record

    In add a quanto detto da OsvaldoLaviosa, se hai una chiave(id_ordine) sulla tabelle (es:tb_ordini), puoi estrarre gli ultimi duecento in questo modo:
    SELECT top 200 TB_ORDINI.ID_ordine
    FROM TB_ORDINI order by TB_ORDINI.ID_ordine desc;
    
    Ciao
    Mik
  • Re: Query 200 record

    Grazie

    il mio problema è visualizzare l'elenco degli ultimi inseriti. se metto il tutto in una sottomaschera e faccio un refresh e' moooolto lento

    come fare?
  • Re: Query 200 record

    Quindi l'idea proposta non va bene? Qual è il problema riscontrato? Hai provato ad utilizzarla??

    Ciao
    Mik
  • Re: Query 200 record

    pfmarro ha scritto:


    il mio problema è visualizzare l'elenco degli ultimi inseriti. se metto il tutto in una sottomaschera e faccio un refresh e' moooolto lento
    Non devi fare alcun Refresh. Immagino che ti serva per una casella combinata. Crea una query come ti è stato suggerito e punta la casella combinata sulla query (anzichè sulla tabella) e il gioco finisce lì.
  • Re: Query 200 record

    I suggerimenti che ti hanno dato non vanno assolutamente bene per evadere la tua richiesta se il tuo strumento è Access-JET.

    Se il problema è di VELOCIZZARE, con JET non è fattbile in quanto tecnicamente funziona diversamente.
    JET non è un RDBMS, quindi non elabora ServerSide alcuna limitazione dei Records.

    Anche usando la Clausola TOP come ti hanno suggerito, se si analizzassero i piani di esecuzione con lo ShowPlan(cosa che nessuno fa in quanto non usuale per gli sviluppatori di Access) vedresti che la query verrebbe risolta in 2 tempi, la 1° parte recupererebbe tutti i 32000 Records, la 2° ne estrarrebbe solo 200.

    Risultato...? INUTILE.

    Chiaramente stesso discorso per l'uso di WHERE e condizioni..., quì ci sarebbero da aprire parentesi molto tecniche...

    Questo è un LIMITE di Access o meglio di JET, perchè se tu avessi un RDBMS come SQL_SERVER/MySQL o altri... il suggerimento sarebbe stato corretto.
Devi accedere o registrarti per scrivere nel forum
6 risposte