[SQL SERVER 2008] - Update nomi occorrenze multiple

giovedì 09 febbraio 2017 - 10.35
Tag Elenco Tags  SQL Server 2008 R2

dario82 Profilo | Newbie

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

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

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

>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.

>
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 !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5