Buonasera,
mi date qualche idea per ridurre ai minimi termini il processo per trovare in un database dei numeri mancanti?
Tipo una riga viene eliminata e voglio trovare gli id mancanti di quella sequenza
Buonasera,
mi date qualche idea per ridurre ai minimi termini il processo per trovare in un database dei numeri mancanti?
Tipo una riga viene eliminata e voglio trovare gli id mancanti di quella sequenza
C'è poco da ridurre ai minimi termini, ..... è come arrampicarsi sui vetri
Tradizionalmente in SQL si fanno i filtri,
ma in questo caso non si puo perche quello che vorresti filtrare è proprio quello che manca
Poi con la tua richiesta sembra che vuoi trovare TUTTI i numeri da MenoInfinito a PiuInfinito ad esclusione di quanto gia presente in tabella
Immaginiamo invece che ti bastano i numeri mancanti dal MinimoDiTabella al MassimoDiTabella
Le varie possibilita sono:
1°)
- Un ciclo che scorre i numeri naturali da MinimoDiTabella a MassimoDiTabella e verifica se il NumeroDelCiclo è presente in tabella
2°)
- con delle viste che fanno queste cose
--- prendi la tabella e ci costruisci un Numeratore continuo da 1 a n (Chiamiamola V1)
--- prendi ancora la tabella e costruisci un altro Numeratore continuo da 2 a n+1 (Chiamiamola V2)
--- metti in Join V1 e V2 sui 2 Numeratore costruiti (Chiamiamola V3)
- se la tua sequinza di numeri è continua in V3 avrai sempre differenza di una unita fra i tuoi 2 ID
- se discontinua avrai una differenza maggiore
- quindi hai trovato il 1° numero mancante
- Ma se mancano più numeri consecutivi allora si complica parecchio
- Qui mi fermo perche è complesso e devo andare a lavorare
Ma magari non ti servono TUTTI gli ID mancanti ma solamente il primo
allora sarebbe moltissimo piu facile
Ma non è che per caso vuoi rimpiazzare gli ID eliminati ??????
sappi che è una idea malsana
Facci sapere
.
Ultima modifica di nman; 01-07-2017 a 07:06
In più dell'intervento di nman.
Se vuoi sapere quante righe mancano puoi :
- Usare una tabella che riempi quando cancelli nell'altra.
- Usare un flag attivato/disattivato che fa una cancellazione logica e non più fisica.
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr
Per il fisco non penso si possa cancellare una fattura.
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr
puoi anche creare una tabella di numeri a 1 a n, e poi metterla in left join per scoprire i buchi