O problema interessante da pergunta… encontra-se com figuração para fora de como combinar o código o mais específico ao número. Meu mecanismo usa o comprimento do prefixo do código de área para ajudar a figurar para fora o mais apropriado. Anotar que eu apenas tomei seus dados fornecidos e fiz rapidamente a algum CTEs fora dele. Para mostrar-lhe apenas como o SELETO trabalharia…
COM CalledNumbers COMO (
SELECIONAR “98798798797” COMO o cliente
UNIÃO “19123123123 SELETOS” --Eu mudei este valor de seu borne original
UNIÃO “13123123123 SELETOS”
UNIÃO “12423123127 SELETOS”
), AreaCodes COMO (
SELECIONAR “12” COMO o prefixo, “agrupam” COMO GroupName
UNIÃO “98 SELETOS”, “grupo B”
A UNIÃO “1 SELETO”, “agrupa A”
UNIÃO “131 SELETOS”, “grupo 5”
UNIÃO “124 SELETOS”, “grupo 4”
)
SELECIONAR CalledNumbers.*, AreaCodes.*
De CalledNumbers
EXTERIORES ESQUERDOS JUNTAM-SE a AreaCodes em CalledNumbers.Account COMO AreaCodes.Prefix + “%”
ONDE LEN (AreaCodes.Prefix) = (SELECIONAR max (LEN (prefixo)) De AreaCodes ONDE CalledNumbers.Account GOSTAM AreaCodes.Prefix + “%")
E a fim fazer como necessário sua atualização:
ATUALIZAÇÃO CalledNumbers AJUSTADO CalledNumbers.GroupName = AreaCodes.GroupName DE
CalledNumbers
EXTERIORES ESQUERDOS JUNTAM-SE a AreaCodes em CalledNumbers.Account COMO AreaCodes.Prefix + “%”
ONDE LEN (AreaCodes.Prefix) = (SELECIONAR max (LEN (prefixo)) De AreaCodes ONDE CalledNumbers.Account GOSTAM AreaCodes.Prefix + “%")