I'm trying to modify this query, using levhenstein. My problem its that I can add my condition in inner join query, not in where query.
This is my actual query:
SELECT
registrosImportados.id, TVC.NOMBRETVC,
VIACU.NOMBREVIACU, CUT.GLOSA,
registrosImportados.direccion,
dbo.fn_LevenshteinDistance(registrosImportados.direccion, VIAIU.NOMBREVIAIU, 5)
FROM
ACOPIOCI
INNER JOIN
TVC ON ACOPIOCI.IDTVC = TVC.IDTVC
INNER JOIN
VIACU ON ACOPIOCI.IDVIACU = VIACU.IDVIACU
INNER JOIN
VIAIU ON ACOPIOCI.IDVIAIU = VIAIU.IDVIAIU
INNER JOIN
CUT ON ACOPIOCI.IDCUT = CUT.IDCUT
INNER JOIN
registrosImportados ON CUT.CUT = registrosImportados.cut
WHERE
dbo.fn_LevenshteinDistance(registrosImportados.direccion, VIAIU.NOMBREVIAIU, 5) = (SELECT MIN(M.DISTANCIA)
FROM
(SELECT dbo.fn_LevenshteinDistance(registrosImportados.direccion, VIAIU.NOMBREVIAIU, 5) AS DISTANCIA
FROM ACOPIOCI
INNER JOIN VIAIU ON ACOPIOCI.IDVIAIU = VIAIU.IDVIAIU
WHERE ACOPIOCI.IDCUT = CUT.IDCUT) AS M
)
AND ACOPIOCI.IDCUT = CUT.IDCUT
And this is what I want to do:
SELECT
VIACU.NOMBREVIACU, registrosImportados.DIRECCION,
dbo.fn_LevenshteinDistance(registrosImportados.direccion, VIAIU.NOMBREVIAIU, 2) DIST
FROM
ACOPIOCI
INNER JOIN
TVC ON ACOPIOCI.IDTVC = TVC.IDTVC
INNER JOIN
VIACU ON ACOPIOCI.IDVIACU = VIACU.IDVIACU
INNER JOIN
VIAIU ON ACOPIOCI.IDVIAIU = VIAIU.IDVIAIU
INNER JOIN
CUT ON ACOPIOCI.IDCUT = CUT.IDCUT
INNER JOIN
registrosImportados ON CUT.CUT = registrosImportados.cut
INNER JOIN
(SELECT
MIN(dbo.fn_LevenshteinDistance(registrosImportados.direccion, VIAIU.NOMBREVIAIU, 2)
) AS MINDIST) M ON registrosImportados.DIST = M.MINDIST
But it doesn't work. My idea is to get performance in my query.