Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
[SQL SERVER 2008] - Update nomi occorrenze multiple
giovedì 09 febbraio 2017 - 10.35
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
SQL Server 2008 R2
dario82
Profilo
| Newbie
2
messaggi | Data Invio:
gio 9 feb 2017 - 10:35
Ciao a tutti sono nuovo del forum
sto lavorando con un SQL Server 2008.
Ho due tabelle che chiamerò per comodita t1 e t2 che contengono su per giù gli stessi dati (utenze).
Devo andare a trovare in t2 tutte le occorrenze multiple e fino a qui ci sono arrivato e ho trovato gli ID che mi interessano.
Come secondo passo devo andare a fare un update su t1 seguendo questa logica
Mettiamo il caso che ho trovato i seguenti ID (aggiungo il nome per rendere l'idea)
2 - Salvo Grigio
3 - Pippo Franco
5 - Pippo Franco
6 - Roberta Bianchi
12 - Pippo Franco
18 - Alfredo Rossi
Dovrei fare un update che permetta, avendo gli ID, ad avere questa configurazione
2 - Salvo Grigio.
3 - Pippo Franco.
5 - Pippo Franco..
6 - Roberta Bianchi.
12 - Pippo Franco...
18 - Alfredo Rossi.
aggiungere un puntino ad ogni nome, se ci sono nomi uguali aggiungere due puntini, tre puntini e così via.
Stavo pensando a fare un update aggiungendo un case ma con le stringhe mi sembra un tantino enorme e poi non so a priori quanti doppioni posso avere.
Vi chiedo se avete un idea veloce, mi basta un suggerimento, per poter fare questo lavoro.
Grazie.
ma_di
Profilo
| Junior Member
163
messaggi | Data Invio:
gio 9 feb 2017 - 11:04
Ciao.
Se ho capito bene devi aggiungere tanti puntini quante sono le occorrenze del nome.
Un modo potrebbe essere :
- mettere gli ID in una tabella, ordinati per esempio in ordine crescente
- prendere il primo della lista e contare quante volte è presente in tabella
- sulla base di questo numero costruire una stringa di tanti puntini
- andare nella tabella da aggiornare, prendere il nome corrispondente all'ID in esame
- concatenare nome e stringa puntini
- aggiornare la tabella
- nella tabella degli ID cancellare l'ID preso
- ripetere il tutto fino a quando nella tabella non restano più ID
E' uno spunto ... potrebbe anche essere che ci sia di meglio
Ciao.
dario82
Profilo
| Newbie
2
messaggi | Data Invio:
gio 9 feb 2017 - 11:39
Ciao e grazie per la risposta
il problema è che il risultato degli ID è una normale estrazione.
Tu mi dici che mi dovrei creare una tabella temporanea che accolga questi ID, la mia intenzione era fare tutto all'interno di una query, per quanto molto grossa ma almeno lanciandola di avere l'effetto sperato.
ma_di
Profilo
| Junior Member
163
messaggi | Data Invio:
gio 9 feb 2017 - 12:00
>Ciao e grazie per la risposta
>il problema è che il risultato degli ID è una normale estrazione.
Cosa intendi per normale estrazione?
Nessuno ti vieta di mettere questi ID in una tabella temporanea, o se necessario in una normalissima tabella se devi riutilizzarla.
>Tu mi dici che mi dovrei creare una tabella temporanea che accolga
>questi ID, la mia intenzione era fare tutto all'interno di una
>query, per quanto molto grossa ma almeno lanciandola di avere
>l'effetto sperato.
Se la pensi bene vedrai che la query è unica
e nemmeno molto grossa
Ciao.
>
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !