anjankant Ответов: 3

Сумма в Word в MS SQL


Могу ли я предложить, как можно конвертировать сумму в word в MS SQL, пожалуйста, пришлите мне ответ как можно скорее.

Заранее спасибо!

rkthiyagarajan

Зачем нужно это преобразование в SQL?..вы делаете в asp.net и сохраните его в своей базе данных

3 Ответов

Рейтинг:
27

palraj001

Привет..


Сначала создайте эту таблицу,

CREATE TABLE [dbo].[M_Words](
    [Code] [int] NULL,
    [WNumber] [int] NULL,
    [Wwords] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]



затем

INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(1,0,'Zero')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(2,1,'One')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(3,2,'Two')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(4,3,'Three')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(5,4,'Four')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(6,5,'Five')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(7,6,'Six')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(8,7,'Seven')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(9,8,'Eight')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(10,9,'Nine')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(11,10,'Ten')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(12,11,'Eleven')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(13,12,'Twelve')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(14,13,'Thirteen')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(15,14,'Fourteen')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(16,15,'Fifteen')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(17,16,'Sixteen')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(18,17,'Seventeen')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(19,18,'Eighteen')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(20,19,'Nineteen')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(21,20,'Twenty')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(22,30,'Thirty')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(23,40,'Forty')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(24,50,'Fifty')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(25,60,'Sixty')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(26,70,'Seventy')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(27,80,'Eighty')
INSERT INTO [M_Words] ([Code],[WNumber],[Wwords])VALUES(28,90,'Ninety')


затем напишите эту функцию



set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go





create function [dbo].[usp_fnNumToWords](@Number Numeric(18,2),@CPaise Char(1))

 returns varchar(5000)

	BEGIN
	Declare @StrNumber varchar(10), @SLacs char(2), @SThou char(2), @SHun char(2)
	Declare @STenUnt char(2), @STen char(2), @SUnt char(2), @SDecimal char(2)
	Declare @ILacs Int, @IThou Int, @IHun Int, @ITenUnt Int, @ITen Int, @IUnt Int, @IDecimal Int
	Declare @SNumToWords varchar(100), @Wwords varchar(10)






	Select @StrNumber = Replicate('0',10-Len(LTrim(RTrim(convert(varchar,@Number))))) + LTrim(RTrim(Convert(varchar,@Number)))
	--Print @StrNumber
	--Print Len(@StrNumber)
	Select @SNumToWords = ''

	--Print Len(LTrim(RTrim(convert(varchar,@Number))))
	If Len(LTrim(RTrim(convert(varchar,@Number)))) > 4
	Begin
		--Print Len(@StrNumber)
		Select @SLacs = Substring(@StrNumber,1,2)
		--Print @SLacs
		Select @ILacs = Convert(int,@SLacs)
		If @ILacs > 0
		Begin
			Select @STen = Substring(@StrNumber,1,1)
			Select @SUnt = Substring(@StrNumber,2,1)

			if Convert(int,@STen) = 1 
			Begin
				Select @ITen = Convert(int,Substring(@StrNumber,1,2))
				Select @IUnt = 0
			End
			Else
			Begin
				Select @ITen = Convert(int,@STen)*10
				Select @IUnt = Convert(int,@SUnt)
			End

			If @ITen > 0 
			Begin			
				Select @Wwords = ''
				Select @Wwords = Wwords From M_Words Where WNumber = @ITen
				--Print @Wwords
				Select @SNumToWords = @SNumToWords + Space(1) + @Wwords --' Tens'
			End

			If @IUnt > 0 
			Begin			
				Select @Wwords = ''
				Select @Wwords = Wwords From M_Words Where WNumber = @IUnt
				--Print @Wwords
				Select @SNumToWords = @SNumToWords + Space(1) + @Wwords --' Unit'
			End

			--Select @Wwords = ''
			--Select @Wwords = Wwords From M_Words Where WNumber = @ILacs
			--Print @Wwords
			Select @SNumToWords = @SNumToWords + ' Lacs'
		End

		Select @SThou = Substring(@StrNumber,3,2)
		--Print @SThou
		Select @IThou = Convert(int,@SThou)
		If @IThou > 0
		Begin
			Select @STen = Substring(@StrNumber,3,1)
			Select @SUnt = Substring(@StrNumber,4,1)

			if Convert(int,@STen) = 1 
			Begin
				Select @ITen = Convert(int,Substring(@StrNumber,3,2))
				Select @IUnt = 0
			End
			Else
			Begin
				Select @ITen = Convert(int,@STen)*10
				Select @IUnt = Convert(int,@SUnt)
			End
			
			If @ITen > 0 
			Begin			
				Select @Wwords = ''
				Select @Wwords = Wwords From M_Words Where WNumber = @ITen
				--Print @Wwords
				Select @SNumToWords = @SNumToWords + Space(1) + @Wwords --' Tens'
			End

			If @IUnt > 0 
			Begin			
				Select @Wwords = ''
				Select @Wwords = Wwords From M_Words Where WNumber = @IUnt
				--Print @Wwords
				Select @SNumToWords = @SNumToWords + Space(1) + @Wwords --' Unit'
			End

			--Select @Wwords = ''
			--Select @Wwords = Wwords From M_Words Where WNumber = @IThou
			--Print @Wwords
			--Select @SNumToWords = @SNumToWords + @Wwords + ' Thousand '
			Select @SNumToWords = @SNumToWords + ' Thousand '
		End

		Select @SHun = Substring(@StrNumber,5,1)
		--Print @SHun
		Select @IHun = Convert(int,@SHun)
		If @IHun > 0
		Begin
			Select @Wwords = ''
			Select @Wwords = Wwords From M_Words Where WNumber = @IHun
			--Print @Wwords
			Select @SNumToWords = @SNumToWords + @Wwords + ' Hundred'
		End

		Select @STenUnt = Substring(@StrNumber,6,2)
		---Print @STenUnt

		Select @ITenUnt = Convert(int,@STenUnt)

		If @ITenUnt > 0
		Begin
			Select @STen = Substring(@StrNumber,6,1)
			Select @SUnt = Substring(@StrNumber,7,1)

			if Convert(int,@STen) = 1 
			Begin
				Select @ITen = Convert(int,Substring(@StrNumber,6,2))
				Select @IUnt = 0
			End
			Else
			Begin
				Select @ITen = Convert(int,@STen)*10
				Select @IUnt = Convert(int,@SUnt)
			End

			
			If @ITen > 0 
			Begin			
				Select @Wwords = ''
				Select @Wwords = Wwords From M_Words Where WNumber = @ITen
				--Print @Wwords
				Select @SNumToWords = @SNumToWords + Space(1) + @Wwords --' Tens'
			End

			If @IUnt > 0 
			Begin			
				Select @Wwords = ''
				Select @Wwords = Wwords From M_Words Where WNumber = @IUnt
				--Print @Wwords
				Select @SNumToWords = @SNumToWords + Space(1) + @Wwords --' Unit'
			End
		End

		Select @SNumToWords = @SNumToWords + Space(1) + 'Rupees'		--Only/-



	End
	Else
	Begin
		--Print Len(@StrNumber)
		--Print LTrim(RTrim(convert(varchar,@Number)))
		Select @SLacs = Substring(LTrim(RTrim(convert(varchar,@Number))),1,1)
		--Print @SLacs
		Select @ILacs = Convert(int,@SLacs)
		If @ILacs > 0 and @ILacs <> 1
		Begin
			Select @Wwords = ''
			Select @Wwords = Wwords From M_Words Where WNumber = @ILacs
			--Print @Wwords
			Select @SNumToWords = @SNumToWords + Space(1) + @Wwords + Space(1) + 'Rupees'
		End
		Else
		Begin
			Select @Wwords = ''
			Select @Wwords = Wwords From M_Words Where WNumber = @ILacs
			--Print @Wwords
			Select @SNumToWords = @SNumToWords + @Wwords + Space(1) + 'Rupee'
		End
	End

	If @CPaise = 'Y'
	Begin
		Select @SDecimal = Substring(@StrNumber,9,2)
		Select @IDecimal = Convert(int,@SDecimal)
		If @IDecimal > 0
		Begin
			Select @SNumToWords = @SNumToWords + ' and'
			Select @STen = Substring(@SDecimal,1,1)
			Select @SUnt = Substring(@SDecimal,2,1)
	
			if Convert(int,@STen) = 1 
			Begin
				Select @ITen = Convert(int,Substring(@StrNumber,9,2))
				Select @IUnt = 0
			End
			Else
			Begin
				Select @ITen = Convert(int,@STen)*10
				Select @IUnt = Convert(int,@SUnt)
			End
			
			If @ITen > 0 
			Begin			
				Select @Wwords = ''
				Select @Wwords = Wwords From M_Words Where WNumber = @ITen
				--Print @Wwords
				Select @SNumToWords = @SNumToWords + Space(1) + @Wwords --' Tens'
			End
	
			If @IUnt > 0 
			Begin			
				Select @Wwords = ''
				Select @Wwords = Wwords From M_Words Where WNumber = @IUnt
				--Print @Wwords
				Select @SNumToWords = @SNumToWords + Space(1) + @Wwords --' Unit'
			End
	
			Select @SNumToWords = @SNumToWords + Space(1) + 'Paise'	
	
		End
	End

	--Print LTrim(RTrim(@SNumToWords))
return LTrim(RTrim(@SNumToWords))
END





выберите вот так

select dbo.usp_fnNumToWords(105422.00 ,'Y')


Y - с ps
N-без ps



С уважением,
приятель


Рейтинг:
18

Muhammad Shahid Farooq

<b>Шаг 1:</b> создайте функцию
Скопируйте приведенный ниже текст в анализатор запросов и выполните его

/*******************************************************************************/
УСТАНОВИТЕ QUOTED_IDENTIFIER НА
УСТАНОВИТЕ ANSI_NULLS НА
УСТАНОВИТЕ NOCOUNT ON
ГО

Создайте функцию dbo.Num_ToWords (@Number Numeric (38, 0))
ВОЗВРАЩАЕТ VARCHAR(8000)
КАК НАЧАТЬ

Объявить @inputNumber VARCHAR(38)
Объявите таблицу @NumbersTable (number CHAR(2), word VARCHAR(10))
Объявить @outputString VARCHAR(8000)
Объявить @length INT
Объявить @counter INT
Объявить @loops INT
Объявить @position INT
DECLARE @chunk CHAR(3) -- для фрагментов из 3 чисел
Объявить @tensones CHAR(2)
Объявить @hundreds CHAR(1)
Объявить @tens CHAR(1)
Объявить @ones CHAR(1)

Если @Number = 0, верните "ноль".

-- инициализация переменных
SELECT @inputNumber = CONVERT(varchar(38), @Number)
, @outputString = "
, @счетчик = 1
Выберите @length = LEN(@inputNumber)
, @position = LEN(@inputNumber) - 2
, @loops = LEN(@inputNumber)/3

-- убедитесь, что для оставшихся чисел добавлена дополнительная петля
Если LEN(@inputNumber) % 3 <> 0 SET @loops = @loops + 1

-- вставка данных для чисел и слов
Вставить в @NumbersTable SELECT '00', "
Всесоюзная выберите '01', 'один' союз выберите '02', 'два'
Объединить все выбрать '03', 'три' Союз выберите '04', 'четыре'
Объединить все выбрать '05', 'пять' Союз выберите '06', 'шесть'
Объединить все выбрать '07', 'семь' Союз выберите '08', 'восемь'
Объединить все выбрать '09', 'девять' Союз выберите '10', 'десять'
Всесоюзная выберите '11', 'одиннадцать' Союз выберите '12', 'двенадцать'
Объединить все выбрать '13', 'тринадцать' Союз выберите '14', 'четырнадцать'
Объединить все выбрать '15', 'пятнадцать' Союз выберите '16', 'шестнадцать'
Всесоюзная выберите '17', 'семнадцать' Союз выберите '18', 'восемнадцать'
Объединить все выбрать '19', 'девятнадцать' Союз выберите '20', 'двадцать'
Всесоюзная выберите '30', 'тридцать' Союз выберите '40', 'сорок'
Всесоюзная выберите '50', 'пятьдесят' Союз выберите '60', 'шестьдесят'
Объединить все выбрать '70', 'семьдесят' Союз выберите '80', 'восемьдесят'
UNION ALL SELECT '90', 'девяносто'

В то время как @counter <= @loops начинаются

-- получить куски из 3 чисел одновременно, дополненные ведущими нулями
SET @chunk = RIGHT('000' + SUBSTRING(@inputNumber, @position, 3), 3)

Если @chunk <> '000' начинается
SELECT @tensones = SUBSTRING(@chunk, 2, 2)
, @hundreds = подстрока(@chunk, 1, 1)
, @tens = подстрока(@chunk, 2, 1)
, @ones = подстрока(@chunk, 3, 1)

-- Если двадцать или меньше, используйте слово непосредственно из @NumbersTable
Если CONVERT(INT, @tensones) <= 20 или @Ones='0' BEGIN
SET @outputString = (SELECT word
От @NumbersTable
Где @tensones = число)
+ Чехол @счетчик, когда 1 тогда " - без названия
Когда 2 тогда ' тысяч ', когда 3 тогда "миллион"
Когда 4, то "миллиард", когда 5, то "триллион".
Когда 6, то "квадриллион" , когда 7, то "квинтиллион".
Когда 8, то "секстиллион" , когда 9, то "септиллион".
Когда 10 тогда октиллиона '11 тогда, когда' нониллионов '
Когда 12 тогда decillion когда 13 то ' undecillion '
ЕЩЕ " КОНЕЦ
+ @outputString
КОНЕЦ
Иначе начинайте-разбивайте единицы и десятки по отдельности

SET @outputString = ' '
+ (выбранное слово
От @NumbersTable
Где @tens + '0' = число)
+ '-'
+ (выбранное слово
От @NumbersTable
Где '0'+ @ones = число)
+ Чехол @счетчик, когда 1 тогда " - без названия
Когда 2 тогда ' тысяч ', когда 3 тогда "миллион"
Когда 4, то "миллиард", когда 5, то "триллион".
Когда 6, то "квадриллион" , когда 7, то "квинтиллион".
Когда 8, то "секстиллион" , когда 9, то "септиллион".
Когда 10 тогда октиллиона '11 тогда, когда' нониллионов '
Когда 12 тогда decillion когда 13 то ' undecillion '
ЕЩЕ " КОНЕЦ
+ @outputString
КОНЕЦ

-- а теперь бери сотни.
Если @hundreds <> '0' начинается
SET @outputString = (SELECT word
От @NumbersTable
Где '0' + @сотни = число)
+ " сто "
+ @outputString
КОНЕЦ
КОНЕЦ

Выберите @counter = @counter + 1
, @position = @position - 3

КОНЕЦ

-- Удалите все двойные пробелы
Набор @outputString = функция ltrim(функция rtrim(заменить(@outputString, ' ', ' ')))
SET @outputstring = UPPER(LEFT(@outputstring, 1)) + SUBSTRING(@outputstring, 2, 8000)


RETURN @outputString -- возвращает результат
КОНЕЦ
ГО

GRANT EXEC on dbo.udf_Num_ToWords TO PUBLIC
ГО

УСТАНОВИТЬ QUOTED_IDENTIFIER OFF
ГО
УСТАНОВИТЕ ANSI_NULLS НА
ГО
/*******************************************************************************/

<b>Шаг 2:</b> выполнить запрос
выберите dbo.Num_ToWords (1234)

<b>результат:</b> одна тысяча двести тридцать четыре


Рейтинг:
1

Member 14191904

создайте функцию [dbo].[fnGetWordsValue]
(
@Число Десятичное(10,2)
)
ВОЗВРАЩАЕТ VARCHAR(2000)
АС
НАЧАТЬ
Объявить @InWords VARCHAR(50)
если @Number = 0
set @InWords = 'ноль'
если @Number = 1
set @InWords = 'One'
если @Number = 2
set @InWords = 'два'
если @Number = 3
set @InWords = 'Three'
если @Number = 4
set @InWords = 'четыре'
если @Number = 5
set @InWords = 'пять'
если @Number = 6
set @InWords = 'шесть'
если @Number = 7
set @InWords = 'семь'
если @Number = 8
set @InWords = 'восемь'
если @Number = 9
set @InWords = 'девять'
если @Number = 10
set @InWords = 'десять'
если @Number = 11
set @InWords = 'Eleven'
если @Number = 12
set @InWords = 'двенадцать'
если @Number = 13
set @InWords = 'тринадцать'
если @количество = 14
set @InWords = 'четырнадцать'
если @Number = 15
set @InWords = 'пятнадцать'
если @Number = 16
set @InWords = 'шестнадцать'
если @Number = 17
set @InWords = 'Семнадцать'
если @Number = 18
set @InWords = 'восемнадцать'
если @Number = 19
set @InWords = 'девятнадцать'
если @Number = 20
set @InWords = 'двадцать'
если @Number = 30
set @InWords = 'тридцать'
если @Number = 40
set @InWords = 'сорок'
если @Number = 50
set @InWords = 'пятьдесят'
если @Number = 60
set @InWords = 'шестьдесят'
если @Number = 70
set @InWords = 'семьдесят'
если @Number = 80
set @InWords = 'восемьдесят'
если @Number = 90
set @InWords = 'девяносто'
RETURN @InWords
Конец






создайте функцию [dbo].[fnConvertNumToWords]
(
@Number NUMERIC(18, 2),
@CPaise CHAR(1)
)
ВОЗВРАЩАЕТ VARCHAR(2000)
АС
НАЧАТЬ
Объявить @minusNumber NUMERIC(18, 2);

if (@Number < 0)
НАЧАТЬ
SET @minusNumber=ABS(@Number);
Набор @количество=АБС(@количество);

ВЕРНУТЬ '';

КОНЕЦ
Объявить @StrNumber VARCHAR(10),
@SLacs CHAR(2),
@SThou CHAR(2),
@SHun CHAR(2)

Объявить @STenUnt CHAR(2),
@STen CHAR(2),
@SUnt CHAR(2),
@SDecimal CHAR(2)

Объявить @ILacs INT,
@IThou INT,
@IHun INT,
@ITenUnt INT,
@Итен ИНТ,
@IUnt INT,
@IDecimal INT

Объявить @SNumToWords VARCHAR(100),
@numberInWord VARCHAR(10)

Выберите @StrNumber = повторить('0', 10 - лен(функция ltrim(функция rtrim(конвертировать(тип varchar, @количество)))))
+ Функция ltrim(функция rtrim(конвертировать(тип varchar, @количество)))

Выберите @SNumToWords = "
Если LEN(функция ltrim(функция rtrim(конвертировать(тип varchar, @количество)))) &ГТ; 4
НАЧАТЬ
SELECT @SLacs = SUBSTRING(@StrNumber, 1, 2)
SELECT @ILacs = конвертировать(INT, @SLacs)
IF @ILacs > 0
НАЧАТЬ
SELECT @STen = SUBSTRING(@StrNumber, 1, 1)
SELECT @SUnt = SUBSTRING(@StrNumber, 2, 1)
IF CONVERT(INT, @STen) = 1
НАЧАТЬ
SELECT @ITen = CONVERT(INT, SUBSTRING(@StrNumber, 1, 2))
Выберите @IUnt = 0
КОНЕЦ
ЕЩЕ
НАЧАТЬ
SELECT @ITen = конвертировать(INT, @STen) * 10
SELECT @IUnt = конвертировать(INT, @SUnt)
КОНЕЦ
IF @ITen > 0
НАЧАТЬ
Выберите @numberInWord = "
Выберите @numberInWord = dbo.fnGetWordsValue (@ITen)

Выберите @SNumToWords = @SNumToWords + пробел(1) + @numberInWord
КОНЕЦ

IF @IUnt > 0
НАЧАТЬ
Выберите @numberInWord = "
Выберите @numberInWord = dbo.fnGetWordsValue (@IUnt)

Выберите @SNumToWords = @SNumToWords + пробел(1) + @numberInWord
КОНЕЦ
Выберите @SNumToWords = @SNumToWords + 'Lacs'
КОНЕЦ

SELECT @SThou = SUBSTRING(@StrNumber, 3, 2)

SELECT @IThou = конвертировать(INT, @SThou)
IF @IThou > 0
НАЧАТЬ
SELECT @STen = SUBSTRING(@StrNumber, 3, 1)
SELECT @SUnt = SUBSTRING(@StrNumber, 4, 1)
IF CONVERT(INT, @STen) = 1
НАЧАТЬ
SELECT @ITen = CONVERT(INT, SUBSTRING(@StrNumber, 3, 2))
Выберите @IUnt = 0
КОНЕЦ
ЕЩЕ
НАЧАТЬ
SELECT @ITen = конвертировать(INT, @STen) * 10
SELECT @IUnt = конвертировать(INT, @SUnt)
КОНЕЦ
IF @ITen > 0
НАЧАТЬ
Выберите @numberInWord = "
Выберите @numberInWord = dbo.fnGetWordsValue (@ITen)

Выберите @SNumToWords = @SNumToWords + пробел(1) + @numberInWord
КОНЕЦ

IF @IUnt > 0
НАЧАТЬ
Выберите @numberInWord = "
Выберите @numberInWord = dbo.fnGetWordsValue (@IUnt)

Выберите @SNumToWords = @SNumToWords + пробел(1) + @numberInWord
КОНЕЦ

Выберите @SNumToWords = @SNumToWords + ' тысяча '
КОНЕЦ

SELECT @SHun = SUBSTRING(@StrNumber, 5, 1)
SELECT @IHun = конвертировать(INT, @SHun)
Если @IHun > 0
НАЧАТЬ
Выберите @numberInWord = "
Выберите @numberInWord = dbo.fnGetWordsValue (@IHun)

Выберите @SNumToWords = @SNumToWords + @numberInWord + 'сто'
КОНЕЦ

SELECT @STenUnt = SUBSTRING(@StrNumber, 6, 2)

SELECT @ITenUnt = конвертировать(INT, @STenUnt)
IF @ITenUnt > 0
НАЧАТЬ
SELECT @STen = SUBSTRING(@StrNumber, 6, 1)
SELECT @SUnt = SUBSTRING(@StrNumber, 7, 1)
IF CONVERT(INT, @STen) = 1
НАЧАТЬ
SELECT @ITen = CONVERT(INT, SUBSTRING(@StrNumber, 6, 2))
Выберите @IUnt = 0
КОНЕЦ
ЕЩЕ
НАЧАТЬ
SELECT @ITen = конвертировать(INT, @STen) * 10
SELECT @IUnt = конвертировать(INT, @SUnt)
КОНЕЦ
IF @ITen > 0
НАЧАТЬ
Выберите @numberInWord = "
Выберите @numberInWord = dbo.fnGetWordsValue (@ITen)

--Выберите @SNumToWords = @SNumToWords + пробел(1) + @numberInWord
Выберите @SNumToWords = @SNumToWords + пробел(1) + @numberInWord
КОНЕЦ

IF @IUnt > 0
НАЧАТЬ
Выберите @numberInWord = "
Выберите @numberInWord = dbo.fnGetWordsValue (@IUnt)


Выберите @SNumToWords = @SNumToWords + пробел(1) + @numberInWord
КОНЕЦ
КОНЕЦ

Выберите @SNumToWords = @SNumToWords + пробел(1) + 'рупии'
КОНЕЦ
ЕЩЕ
НАЧАТЬ
Выберите @SLacs = подстрока(функция ltrim(функция rtrim(конвертировать(тип varchar, @количество))), 1, 1)
SELECT @ILacs = конвертировать(INT, @SLacs)
IF @ILacs > 0
И @ILacs <> 1
НАЧАТЬ
Выберите @numberInWord = "
Выберите @numberInWord = dbo.fnGetWordsValue (@ILacs)

Выберите @SNumToWords = @SNumToWords + пробел(1) + @numberInWord + пробел(1) +
"Рупии"
КОНЕЦ
ЕЩЕ
НАЧАТЬ
Выберите @numberInWord = "
Выберите @numberInWord = dbo.fnGetWordsValue (@ILacs)

Выберите @SNumToWords = @SNumToWords + @numberInWord + пробел(1) + 'рупия'
КОНЕЦ
КОНЕЦ
Если @CPaise = 'Y'
НАЧАТЬ
Выберите @SDecimal = SUBSTRING(@StrNumber, 9, 2)
SELECT @IDecimal = CONVERT(INT, @SDecimal)
Если @IDecimal > 0
НАЧАТЬ
Выберите @SNumToWords = @SNumToWords + 'и'
SELECT @STen = SUBSTRING(@SDecimal, 1, 1)
SELECT @SUnt = SUBSTRING(@SDecimal, 2, 1)
IF CONVERT(INT, @STen) = 1
НАЧАТЬ
SELECT @ITen = CONVERT(INT, SUBSTRING(@StrNumber, 9, 2))
Выберите @IUnt = 0
КОНЕЦ
ЕЩЕ
НАЧАТЬ
SELECT @ITen = конвертировать(INT, @STen) * 10
SELECT @IUnt = конвертировать(INT, @SUnt)
КОНЕЦ