Código de SQL - Función número en letras de moneda

<<>>
Imágen de perfil
Val: 29
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Función número en letras de monedagráfica de visualizaciones


SQL

estrellaestrellaestrellaestrellaestrella(1)
Publicado el 20 de Agosto del 2019 por Jenrry
804 visualizaciones desde el 20 de Agosto del 2019
Con esta función podrás la cantidad de números enteros y decimales en letras
Cantidad-en-letras

1
estrellaestrellaestrellaestrellaestrella(1)

Publicado el 20 de Agosto del 2019gráfica de visualizaciones de la versión: 1
805 visualizaciones desde el 20 de Agosto del 2019
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

Con esta función podrás la cantidad de números enteros y decimales en letras
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
CREATE FUNCTION [dbo].[CantidadConLetra]
(
	@Numero numeric(18,2)
)
RETURNS Varchar(512)
AS
BEGIN
	DECLARE @lnEntero INT,
	@lcRetorno VARCHAR(512),
	@lnTerna INT,
	@lcMiles VARCHAR(512),
	@lcCadena VARCHAR(512),
	@lnUnidades INT,
	@lnDecenas INT,
	@lnCentenas INT,
	@lnFraccion INT,
	@dec INT
 
	SELECT @lnEntero = CAST(@Numero AS INT), @lnFraccion = (@Numero - @lnEntero) * 100, @lcRetorno = '', @lnTerna = 1
	WHILE @lnEntero > 0
BEGIN /* WHILE */
	SELECT @lcCadena = ''
	SELECT @lnUnidades = @lnEntero % 10
	SELECT @lnEntero = CAST(@lnEntero/10 AS INT)
	SELECT @lnDecenas = @lnEntero % 10
	SELECT @lnEntero = CAST(@lnEntero/10 AS INT)
	SELECT @lnCentenas = @lnEntero % 10
	SELECT @lnEntero = CAST(@lnEntero/10 AS INT)
	SELECT @lcCadena =
		CASE /* UNIDADES */
			WHEN @lnUnidades = 1 AND @lnTerna = 1 THEN 'UNO ' + @lcCadena
			WHEN @lnUnidades = 1 AND @lnTerna <> 1 THEN 'UN ' + @lcCadena
			WHEN @lnUnidades = 2 THEN 'DOS ' + @lcCadena
			WHEN @lnUnidades = 3 THEN 'TRES ' + @lcCadena
			WHEN @lnUnidades = 4 THEN 'CUATRO ' + @lcCadena
			WHEN @lnUnidades = 5 THEN 'CINCO ' + @lcCadena
			WHEN @lnUnidades = 6 THEN 'SEIS ' + @lcCadena
			WHEN @lnUnidades = 7 THEN 'SIETE ' + @lcCadena
			WHEN @lnUnidades = 8 THEN 'OCHO ' + @lcCadena
			WHEN @lnUnidades = 9 THEN 'NUEVE ' + @lcCadena
			ELSE @lcCadena
		END /* UNIDADES */
	SELECT @lcCadena =
		CASE /* DECENAS */
			WHEN @lnDecenas = 1 THEN
			CASE @lnUnidades
			WHEN 0 THEN 'DIEZ '
			WHEN 1 THEN 'ONCE '
			WHEN 2 THEN 'DOCE '
			WHEN 3 THEN 'TRECE '
			WHEN 4 THEN 'CATORCE '
			WHEN 5 THEN 'QUINCE '
			ELSE 'DIECI' + @lcCadena
		END
		WHEN @lnDecenas = 2 AND @lnUnidades = 0 THEN 'VEINTE ' + @lcCadena
		WHEN @lnDecenas = 2 AND @lnUnidades <> 0 THEN 'VEINTI' + @lcCadena
		WHEN @lnDecenas = 3 AND @lnUnidades = 0 THEN 'TREINTA ' + @lcCadena
		WHEN @lnDecenas = 3 AND @lnUnidades <> 0 THEN 'TREINTA Y ' + @lcCadena
		WHEN @lnDecenas = 4 AND @lnUnidades = 0 THEN 'CUARENTA ' + @lcCadena
		WHEN @lnDecenas = 4 AND @lnUnidades <> 0 THEN 'CUARENTA Y ' + @lcCadena
		WHEN @lnDecenas = 5 AND @lnUnidades = 0 THEN 'CINCUENTA ' + @lcCadena
		WHEN @lnDecenas = 5 AND @lnUnidades <> 0 THEN 'CINCUENTA Y ' + @lcCadena
		WHEN @lnDecenas = 6 AND @lnUnidades = 0 THEN 'SESENTA ' + @lcCadena
		WHEN @lnDecenas = 6 AND @lnUnidades <> 0 THEN 'SESENTA Y ' + @lcCadena
		WHEN @lnDecenas = 7 AND @lnUnidades = 0 THEN 'SETENTA ' + @lcCadena
		WHEN @lnDecenas = 7 AND @lnUnidades <> 0 THEN 'SETENTA Y ' + @lcCadena
		WHEN @lnDecenas = 8 AND @lnUnidades = 0 THEN 'OCHENTA ' + @lcCadena
		WHEN @lnDecenas = 8 AND @lnUnidades <> 0 THEN 'OCHENTA Y ' + @lcCadena
		WHEN @lnDecenas = 9 AND @lnUnidades = 0 THEN 'NOVENTA ' + @lcCadena
		WHEN @lnDecenas = 9 AND @lnUnidades <> 0 THEN 'NOVENTA Y ' + @lcCadena
		ELSE @lcCadena
		END /* DECENAS */
	SELECT @lcCadena =
		CASE /* CENTENAS */
			WHEN @lnCentenas = 1 AND @lnUnidades = 0 AND @lnDecenas = 0 THEN 'CIEN ' +@lcCadena
			WHEN @lnCentenas = 1 AND NOT(@lnUnidades = 0 AND @lnDecenas = 0) THEN'CIENTO ' + @lcCadena
			WHEN @lnCentenas = 2 THEN 'DOSCIENTOS ' + @lcCadena
			WHEN @lnCentenas = 3 THEN 'TRESCIENTOS ' + @lcCadena
			WHEN @lnCentenas = 4 THEN 'CUATROCIENTOS ' + @lcCadena
			WHEN @lnCentenas = 5 THEN 'QUINIENTOS ' + @lcCadena
			WHEN @lnCentenas = 6 THEN 'SEISCIENTOS ' + @lcCadena
			WHEN @lnCentenas = 7 THEN 'SETECIENTOS ' + @lcCadena
			WHEN @lnCentenas = 8 THEN 'OCHOCIENTOS ' + @lcCadena
			WHEN @lnCentenas = 9 THEN 'NOVECIENTOS ' + @lcCadena
			ELSE @lcCadena
		END /* CENTENAS */
	SELECT @lcCadena =
		CASE /* TERNA */
			WHEN @lnTerna = 1 THEN @lcCadena
			WHEN @lnTerna = 2 AND (@lnUnidades + @lnDecenas + @lnCentenas <> 0) THEN @lcCadena + ' MIL '
			WHEN @lnTerna = 3 AND (@lnUnidades + @lnDecenas + @lnCentenas <> 0) AND
			@lnUnidades = 1 AND @lnDecenas = 0 AND @lnCentenas = 0 THEN @lcCadena + ' MILLON '
			WHEN @lnTerna = 3 AND (@lnUnidades + @lnDecenas + @lnCentenas <> 0) AND
			NOT (@lnUnidades = 1 AND @lnDecenas = 0 AND @lnCentenas = 0) THEN @lcCadena+ ' MILLONES '
			WHEN @lnTerna = 4 AND (@lnUnidades + @lnDecenas + @lnCentenas <> 0) THEN @lcCadena + ' MIL MILLONES '
			ELSE ''
		END /* MILLARES */
	--print @lcCadena
	SELECT @lcRetorno = @lcCadena + @lcRetorno
	SELECT @lnTerna = @lnTerna + 1
	END /* WHILE */
	SELECT @dec =(@Numero - CONVERT(Int,@Numero)) * 100
	If @dec > 0
		If @dec <  10
			SELECT @lcRetorno = @lcRetorno + ' CON 0' + RTrim(CONVERT(VARCHAR,@dec)) + '/100 SOLES.'
		else
		SELECT @lcRetorno = @lcRetorno + ' CON ' + RTrim(CONVERT(VARCHAR,@dec)) + '/100 SOLES.'
	ELSE
		SELECT @lcRetorno = @lcRetorno + ' CON 0' + RTrim(CONVERT(VARCHAR,@dec)) + '/100 SOLES.'
		SELECT @lcRetorno = Upper(Substring(@lcRetorno, 1, 1)) + Substring(@lcRetorno, 2,Len(@lcRetorno))
	RETURN RTRIM(@lcRetorno)
END
GO



Comentarios sobre la versión: 1 (1)

Harwing
22 de Agosto del 2019
estrellaestrellaestrellaestrellaestrella
Excelente aporte
Responder

Comentar la versión: 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s5484