Questione : Codice di domanda di SQL

Devo tabelle. La tabella 1 è come segue cliente del


Called: il
98798798797
13123123123
13123123123
12423123127

Table 2 è come segue: il gruppo 4

What che del gruppo 5
124 di A
131 del gruppo di B
1 del gruppo di A
98 del gruppo del

Code GroupName
12 voglio fare è di selezionare un codice a partire dalla tabella 2 per esempio, codifica 12 ed allora aggiorna tutte le annotazioni in tabella A con i numeri che cominciano con 12 raggruppare il A. Lo stessi per tutti i altri codici. Prego help.
class= del

Risposta : Codice di domanda di SQL

Il problema interessante di domanda… si trova con la rappresentazione fuori come abbinare il codice più specifico al numero. Il mio meccanismo usa la lunghezza del prefisso di prefisso regionale per contribuire a calcolare fuori più adatto quello. Si noti che ho preso appena i vostri dati assicurati e rapidamente ho reso ad un certo CTEs da esso. Appena per mostrargli come il PRESCELTO funzionerebbe…

CON CalledNumbers COME (
      SELEZIONARE “98798798797„ COME cliente
      UNIONE PRESCELTI “19123123123„ --Ho cambiato questo valore dal vostro alberino originale
      UNIONE PRESCELTI “13123123123„
      UNIONE PRESCELTI “12423123127„      
), AreaCodes COME (
      SELEZIONARE “12„ COME prefisso, “raggruppano„ COME GroupName
      UNIONE “98„ PRESCELTI, “gruppo B„
      L'UNIONE “1„ PRESCELTO, “raggruppa A„
      UNIONE “131„ PRESCELTI, “gruppo 5„
      UNIONE “124„ PRESCELTI, “gruppo 4„
)
SELEZIONARE CalledNumbers.*, AreaCodes.*
Da CalledNumbers
      ESTERNI DI SINISTRA UNISCONO AreaCodes su CalledNumbers.Account COME AreaCodes.Prefix + “%„
DOVE LEN (AreaCodes.Prefix) = (SELEZIONARE il max (LEN (prefisso)) Da AreaCodes DOVE CalledNumbers.Account GRADICONO AreaCodes.Prefix + “%")

E per per fare il vostro aggiornamento quanto basta:

AGGIORNAMENTO CalledNumbers STABILITO CalledNumbers.GroupName = AreaCodes.GroupName DA
CalledNumbers
      ESTERNI DI SINISTRA UNISCONO AreaCodes su CalledNumbers.Account COME AreaCodes.Prefix + “%„
DOVE LEN (AreaCodes.Prefix) = (SELEZIONARE il max (LEN (prefisso)) Da AreaCodes DOVE CalledNumbers.Account GRADICONO AreaCodes.Prefix + “%")
Altre soluzioni  
 
programming4us programming4us