Le problème intéressant de question… se trouve avec figurer dehors comment assortir le code le plus spécifique au nombre. Mon mécanisme emploie la longueur du préfixe d'indicatif régional pour aider à figurer dehors le plus approprié. Noter que j'ai juste pris vos données fournies et ai rapidement fait à un certain CTEs hors de lui. Te montrer juste comment le CHOISI fonctionnerait…
AVEC CalledNumbers COMME (
CHOISIR « 98798798797 » COMME compte
UNION CHOISIS « 19123123123 » --J'ai changé cette valeur de votre poteau original
UNION CHOISIS « 13123123123 »
UNION CHOISIS « 12423123127 »
), AreaCodes COMME (
CHOISIR « 12 » COMME préfixe, « groupent » COMME GroupName
UNION « 98 » CHOISIS, « groupe B »
L'UNION « 1 » CHOISI, « groupent A »
UNION « 131 » CHOISIS, « groupe 5 »
UNION « 124 » CHOISIS, « groupe 4 »
)
CHOISIR CalledNumbers.*, AreaCodes.*
De CalledNumbers
EXTERNES GAUCHES JOIGNENT AreaCodes SUR CalledNumbers.Account COMME AreaCodes.Prefix + « % »
LÀ OÙ LEN (AreaCodes.Prefix) = (CHOISIR max (LEN (préfixe)) D'AreaCodes OÙ CalledNumbers.Account AIMENT AreaCodes.Prefix + « %")
Et afin de faire votre mise à jour au besoin :
MISE À JOUR CalledNumbers RÉGLÉ CalledNumbers.GroupName = AreaCodes.GroupName DE
CalledNumbers
EXTERNES GAUCHES JOIGNENT AreaCodes SUR CalledNumbers.Account COMME AreaCodes.Prefix + « % »
LÀ OÙ LEN (AreaCodes.Prefix) = (CHOISIR max (LEN (préfixe)) D'AreaCodes OÙ CalledNumbers.Account AIMENT AreaCodes.Prefix + « %")