- Home
- Categorie
- Coding e Sistemistica
- PHP
- [SQL] Eliminare doppie occorrenze [Era: Consiglio Urgente A Problema Stupido...]
-
[SQL] Eliminare doppie occorrenze [Era: Consiglio Urgente A Problema Stupido...]
Ho una tabella mysql fatta in questo modo:
ID|ENTRATA|USCITA|CODLISTINO
1 |2007-01-01|2007-01-31|1
1 |2007-02-01|2007-02-28|1
1 |2007-04-01|2007-04-31|3Il problema è questo... c'è un modo veloce di fargli trovare la contiguità del codice listino ed elimiare così le righe superflue? Ottenendo nell'esempio
ID|ENTRATA|USCITA|CODLISTINO
1 |2007-01-01|2007-02-28|1
1 |2007-04-01|2007-04-31|3Vorrei evitare di prenderli uno alla volta e ciclare su tutto il database... facendo i controlli in php....diventano una infinità di chiamate (ovviamente i valori non sono solo 3 come nell'esempio).
Che strategia mi consigliate?
-
Ciao gringo75,
modifico il titolo
Per la tua richiesta,puoi usare SELECT DISTINCT
Ciao!
-
Forse non mi sono spiegato... o forse mi sfuggono gli usi del distinct
Quello che devo eliminare è che se due campi sono contigui nel tempo, diventino un unica riga.
Es.
da 1 gennaio a 31 gennaio , listino 1
da 1 febbraio a 28 febbraio , listino 1diventi l'unica riga
da 1 gennaio a 28 febbraio, listino 1
-
@gringo75 said:
Forse non mi sono spiegato... o forse mi sfuggono gli usi del distinct
Quello che devo eliminare è che se due campi sono contigui nel tempo, diventino un unica riga.
Es.
da 1 gennaio a 31 gennaio , listino 1
da 1 febbraio a 28 febbraio , listino 1diventi l'unica riga
da 1 gennaio a 28 febbraio, listino 1Se:
- Il campo listino identifica già la contiguità temporale
- del campo entrata ti serve il minore
- del campo uscita ti serve il maggiore
SELECT
id
, min(entrata
), max(uscita
),codlistino
FROMtabella
group byid
,codlistino
-
Il campo codice listino identifica il listino prezzi da applicare in un certo periodo.
Io vorrei riunire in una sola riga i periodi contigui che utilizzano lo stesso listino prezzi.