Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    residenza
    Cittį del Messico (Messico)
    Messaggi
    610

    Select per trovare i numeri che mancano

    Mi servierebbe un aiuto per una query su MYSQL.

    In un DB ho un campo INTEGER che é il "numero di pratica", é un numero che si inserisce manualmente e non é relazionato con l'ID (chiave primaria) in pratic aogni volta che si inserisce una nuova pratica si mette il numero di pratica (per esempio 100). Ho la necessitį di tirare fuori dal DB tutti i numeri di pratica che mancano nel DB ossia che sono stati cancellati o se sono stati saltati per errore. Per esempio se in un DB ci sono 4 record con "numero pratica" 1-2-3-5 la query mi dovrebbe tirare fuori il 4 ossia il numero di pratica che é stato saltato.

    É possibile?

    grazie a tutti
    M.Solazzi
    from
    Mexico City!!

  2. #2
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333

    Re: Select per trovare i numeri che mancano

    Originariamente inviato da M.Solazzi
    In un DB ho un campo INTEGER che é il "numero di pratica",
    é un numero che si inserisce manualmente e non é relazionato con l'ID (chiave primaria)

    in pratic aogni volta che si inserisce una nuova pratica si mette il numero di pratica (per esempio 100).

    Ho la necessitį di tirare fuori dal DB tutti i numeri di pratica che mancano nel DB ossia che sono stati cancellati o se sono stati saltati per errore.

    Per esempio se in un DB ci sono 4 record con "numero pratica" 1-2-3-5 la query mi dovrebbe tirare fuori il 4 ossia il numero di pratica che é stato saltato.
    Io farei cosi:

    __________________________________________

    Immaginiamo che la tua tabella si chiama "Pratiche"
    con i campi "IDPr" e "NuPr" ( Numero di pratica )

    __________________________________________

    Disponi nel DB di una seconda tabella QUALUNQUE
    che abbia un numero di record CERTAMENTE superiore
    al massimo valore di "NuPr" nella tabella "Pratiche"

    Immaginiamo si chiami "Tab"
    con i campi "ID" ( Key ) ..... eccetera

    __________________________________________


    Crei una vista di nome "V1" sulla tabella "Tab"
    codice:
    SELECT 
    TabA.ID, 
    Count(TabB.ID) AS Cont
    FROM 
    Tab AS TabA 
    LEFT JOIN 
    Tab AS TabB 
    ON TabA.ID >= TabB.ID
    GROUP BY 
    TabA.ID
    Hai ottenuto con certezza al campo "Cont"
    tutti i numeri da 1 a n

    ( Dove n č superiore al max di "NuPr" )


    _______________________________________


    Crei una ulteriore vista fra la tabella "Pratiche"
    e la vista "V1"

    codice:
    SELECT 
    V1.Cont 
    FROM 
    V1 
    LEFT JOIN 
    Pratiche 
    ON 
    V1.Cont = Pratiche.NuPr
    WHERE 
    (
    ((V1.Cont)<=(SELECT Max(Pratiche.NuPr) FROM Pratiche)) 
    AND 
    ((Pratiche.NuPr) Is Null)
    )

    e hai ottenuto il tuo risultato


    ____________________________________

    Un po macchinoso ma non mi viene
    in mente nulla di meglio




    Facci sapere

    .

  3. #3
    Ciao,

    cerchiamo di ricordarci che nel titolo va specificata la piattaforma in uso, altrimenti c'č troppa confusione e non si capisce pił nulla!

    Provvedo a sistemare io, ma pił attenzione in futuro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.