top of page
Search
  • ABS

SQL - Amount to Word (Vietnamese)

--------------------------------------------------------------------------------------------- Create FUNCTION [dbo].[fSoThanhChu_Mini] (@MyNumber int) RETURNS Nvarchar(100) AS BEGIN

declare @text nvarchar(100) Declare @isLang bit

declare @Tram nvarchar(20) set @Tram = N'' --if 1000*@MyNumber % convert (int, ( left('1000000000000', len(@MyNumber)))) <= 99 set @Tram = N' không trăm ' if @MyNumber % 1000 <= 99 set @Tram = N' không trăm '

if @MyNumber% 1000 <= 9 and 1000*@MyNumber % 1000 <= 99 set @Tram = N' không trăm lẻ '

set @text = N'' SET @MyNumber = @MyNumber % 1000

IF @MyNumber > 99 BEGIN

SET @text = @text + case convert(int,@MyNumber/100) when 0 then N'không' when 1 then N'một' when 2 then N'hai' when 3 then N'ba' when 4 then N'bốn' when 5 then N'năm' when 6 then N'sáu' when 7 then N'bảy' when 8 then N'tám' when 9 then N'chín' end + N' trăm '

END

SET @isLang = 0 SET @MyNumber = @MyNumber % 100

IF @MyNumber > 9 BEGIN

SET @text = @text + case convert(int,@MyNumber/10) when 0 then N'không' when 1 then N'một' when 2 then N'hai' when 3 then N'ba' when 4 then N'bốn' when 5 then N'năm' when 6 then N'sáu' when 7 then N'bảy' when 8 then N'tám' when 9 then N'chín' end + N' mươi '

SET @isLang = 1

END

Else

IF @MyNumber % 10 > 0 BEGIN

IF @text <> N'' SET @text = @text + N'lẻ '

END

SET @MyNumber = @MyNumber % 10

IF @MyNumber > 0 BEGIN IF @isLang = 1 BEGIN SET @text = @text + Case @MyNumber % 10 when 1 then N'mốt ' when 5 then N'lăm ' else case @MyNumber % 10 when 0 then N'không' when 1 then N'một' when 2 then N'hai' when 3 then N'ba' when 4 then N'bốn' when 5 then N'năm' when 6 then N'sáu' when 7 then N'bảy' when 8 then N'tám' when 9 then N'chín' end end

END ELSE BEGIN SET @text = @text +case @MyNumber % 10 when 0 then N'không' when 1 then N'một' when 2 then N'hai' when 3 then N'ba' when 4 then N'bốn' when 5 then N'năm' when 6 then N'sáu' when 7 then N'bảy' when 8 then N'tám' when 9 then N'chín' end END END

if @text <> '' set @text = @Tram + @text RETURN @text

END

---------------------------------------------------------------------------------------------

Create FUNCTION [dbo].[fsothanhchu] (@MyNumber bigint) RETURNS nvarchar(200) AS BEGIN

--Xu li so am declare @SoAm as bit set @SoAm = 0

if @MyNumber < 0 begin

set @SoAm = 1 set @MyNumber = abs(@MyNumber)

end

--May cai chuoi nay vi trong ham mini cong du declare @removeString1 nvarchar(20) declare @removeString2 nvarchar(20) declare @removeString3 nvarchar(30)

set @removeString1 = N'không trăm' set @removeString2 = N'lẻ' set @removeString3 = N'không trăm lẻ triệu'

declare @text nvarchar(200)

SET @text = ''

--neu so o thi phai set o day if @MyNumber = 0 set @text = N'Không' If CONVERT(bigint, @MyNumber / 1000000000000000) > 0 SET @text = DBO.fSoThanhChu_Mini( CONVERT(bigint, @MyNumber / 1000000000000000)) + N' triệu '

If CONVERT(bigint, @MyNumber / 1000000000000) > 0 SET @text = DBO.fSoThanhChu_Mini( CONVERT(bigint, @MyNumber / 1000000000000)) + N' ngàn ' If CONVERT(bigint, @MyNumber / 1000000000) > 0 SET @text =@text + DBO.fSoThanhChu_Mini( CONVERT(bigint, @MyNumber / 1000000000)) + N' tỉ '

SET @MyNumber = @MyNumber % 1000000000

If CONVERT(bigint, @MyNumber / 1000000) > 0 SET @text = @text + DBO.fSoThanhChu_Mini( CONVERT(bigint, @MyNumber / 1000000)) + N' triệu ' SET @MyNumber = @MyNumber % 1000000 If CONVERT(bigint,@MyNumber / 1000) > 0 SET @text = @text + DBO.fSoThanhChu_Mini( CONVERT(bigint, @MyNumber / 1000)) + N' ngàn '

SET @text = @text + DBO.fSoThanhChu_Mini( convert(bigint,@MyNumber)) set @text = ltrim(@text) set @text = rtrim(@text)

if left(@text, len (@removeString1)) = @removeString1 set @text = right(@text, len(@text) - len(@removeString1)) set @text = ltrim(@text) set @text = rtrim(@text) if left(@text, len (@removeString2)) = @removeString2 set @text = right(@text, len(@text) - len(@removeString2)) set @text = ltrim(@text) set @text = rtrim(@text) if right(@text, len (@removeString2) ) = @removeString2 set @text = left(@text, len(@text) - len(@removeString2)) set @text = ltrim(@text) set @text = rtrim(@text) if right(@text, len (@removeString1)) = @removeString1 set @text = left(@text, len(@text) - len(@removeString1))

set @text = ltrim(@text) set @text = rtrim(@text)

if right(@text, len (@removeString3)) = @removeString3 set @text = left(@text, len(@text) - len(@removeString3))

set @text = ltrim(@text) set @text = rtrim(@text)

SET @text = replace(@text, ' ' ,' ')

if left(@text, 8)=N'Một mươi' SET @text = Replace(@text, N'Một mươi', N'Mười')

SET @text = Replace(@text, N'một mươi', N'mười') SET @text = Replace(@text, N'mười mốt', N'mười một') SET @text = replace(@text, N'tỉ triệu' ,'tỉ') if @SoAm =1

begin

set @text = 'âm ' + @text

end set @text = lower(@text) SET @text = UPPER(left(LTrim(@text), 1)) + SUBSTRING(Ltrim(@text), 2 , LEN(@text)-1)

return @text+ N' đồng'

END

4 views0 comments

Recent Posts

See All

SAP B1/iVend- Query Inventory In SAP

Check inventory audit in SAP select  a.CreateDate, b.USER_CODE as [User], a.TransType SAP_DocType, case when a.TransType = 13 then  'Sale Invoice' when a.TransType = 14 then  'Sale Credit Note' when a

ivend-SAP Integration Monitor from SBO to ivend Query

Select IntegrationKey,Cast(SourceType AS Varchar(20)) As SourceType,SourceKey, OperationType, isNull(LogDatetime, getdate()) As LogDatetime, Case isNull(Status, 0) When 0 Then 'Not Processed' Else 'Fa

Post: Blog2_Post
bottom of page