Hola Amigos, espero ke se encuentren bien.
Les cuento mi problema, aka en Chile (mi pais) se utiliza un codigo para identificar en forma unica a las personas, este recive el nombre de Rut. El Rut consta de n cantidad de digitos ma uno llamado "DIGITO VERIFICADOR" (DV) el cual es separado del resto por un guion (-), por ejemplo: 14.136.893-1.
El DV es el resultado de una formula aplicada a los demas digitos (esto sin la participacion de los puntos (.) ni del guion (-).
La idea es realizar esta formula en un procedimiento SQL, lo malo es ke no tengo mucha idea de como hacerlo. Es por esto ke te contacto para ver la posibilidad de ke puedas guiarme en lo ke respecta a la transformacion del siguiente codigo, el cual esta en VB.Net (Esta funcion realiza la verificacion del DV correctamente, pero no se como traspasarla a codigo SQL):
Codigo: Este codigo resibe el siguiente parametro 14136893 el cual corresponde al Rut 14.136.893-1, devolviendo en "Modulo" el DV, ke en este caso sera un 1.
Function Modulo_11(ByVal Rut As String) As String
Dim Arreglo(8) As Integer
Dim Resultado As Integer = 0, I As Integer
Dim Array_Rut(8) As String
For I = Rut.Length + 1 To 9
Rut = "0" + Rut
Next
Arreglo(0) = 4
Arreglo(1) = 3
Arreglo(2) = 2
Arreglo(3) = 7
Arreglo(4) = 6
Arreglo(5) = 5
Arreglo(6) = 4
Arreglo(7) = 3
Arreglo(8) = 2
For I = 0 To 8
Array_Rut(I) = Rut.Chars(I)
Resultado = Resultado + (CInt(Array_Rut(I)) * Arreglo(I))
Next
Resultado = 11 - (Resultado Mod 11)
Select Case Resultado
Case 10 : Modulo = "K"
Case 11 : Modulo = "0"
Case Else
Modulo = CStr(Resultado)
End Select
Return Modulo
End Function
Espero haber sido claro en la explicacion del problema, ojala puedan ayudarme.
De ante mano te agradesco vuestra ayuda, deseandoles bienestar me despido atte. Markos.
PD. Cualkier duda referente a la explicacion solo hazmela llegar.
Chau |