当前位置:首页 » 编程语言 » sql菜单金钱计算
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql菜单金钱计算

发布时间: 2022-07-21 04:47:38

‘壹’ 【sql】金额如果存在数据库中应该使用何种类型

一般用money或decimal或numeric,而不用float或double,因为容易出现"失真".
money货币数据存储的精确度为四位小数。可以存储在 money 数据类型中的值的范围是 -922,337,203,685,477.5808 至 +922,337,203,685,477.5807(需 8 个字节的存储空间)。
在 SQL Server中,numeric 数据类型等价于 decimal 数据类型。存储 decimal 或 numeric 数值所需的字节数取决于该数据的数字总数和小数点右边的小数位数。

‘贰’ sql 货币的字段要求取出万,千,百、。。。分位上的数字 怎么写啊/

教你一种最简单的方法。你货币用的是money类型吧?
假如说1万它就显示为10000.00
可以用字符截取函数实现。例:select
substring('10000',1,1)
返回1。'10000'是货币,第一个1代表从第一位开始截取,第二个一表示截取1位,也就是从10000的第一位开始截取,截取1位,结果就是1,明白否?
可以用下面的语句进行截取万位的数字,根据你自己的条件修改语句吧。
select
substring(convert(nvarchar(10),货币字段),1,1)
ps:货币类型是money不能直接使用substring
所以先convert转换。

‘叁’ SQL,货币型总额计算!

as后面不要用jnall换成其他的不要和表中的字段重名

‘肆’ Sql语句 设置MONEY格式为货币格式!

default 0 意思就是 默认值是0

也就是 如果你插入数据的时候, 如果这一列, 不传数据, 那就就使用默认值来填写这个字段。

‘伍’ 如何在 Sql Server 中实现货币格式的相关推荐

/*
是小写转大写么?
Select dbo.fn_ChnMoney(100.5) --壹佰元零伍分
*/
Create FUNCTION fn_ChnMoney(@decNum decimal(18,2))
RETURNS varchar(200)
AS
BEGIN

DECLARE @chvNum varchar(200)
DECLARE @chvMoney varchar(200)
DECLARE @chvTemp varchar(200)
DECLARE @intIntLen int
DECLARE @intI int
DECLARE @chvTempI varchar(200)
DECLARE @chvReturn varchar(200)
DECLARE @sFsFlag int

SET @sFsFlag = 0

IF @decNum=0
SET @chvReturn = '零'
Else
BEGIN

IF @decNum<0
BEGIN
SET @sFsFlag = 1
SET @decNum = ABS(@decNum)
END

SET @chvTemp=convert(varchar(200),Round(@decNum*100,0))
IF charindex('.',@chvTemp,1)>0
SET @chvNum=left(@chvTemp,charindex('.',@chvTemp,1)-1)
ELSE
SET @chvNum=@chvTemp

SET @intIntLen=len(@chvNum)

SET @chvMoney=''
Set @chvReturn = ''
SET @intI=1

WHILE @intI <= @intIntLen
BEGIN
SET @chvTempI = substring(@chvNum,@intIntLen-@intI+1,1)
SET @chvMoney = substring('零壹贰叁肆伍陆柒捌玖',convert(int,@chvTempI)+1,1) + substring('分角元拾佰仟万拾佰仟亿拾佰仟兆拾佰仟京拾佰仟',(@intI-1)+1,1)
SET @intI = @intI + 1

SET @chvReturn = @chvMoney + @chvReturn
END
END

SET @chvReturn=Replace(@chvReturn,'零仟','零')
SET @chvReturn=Replace(@chvReturn,'零佰','零')
SET @chvReturn=Replace(@chvReturn,'零拾','零')

while charindex('零零',@chvReturn,1)>0
SET @chvReturn=Replace(@chvReturn,'零零','零')

SET @chvReturn=Replace(@chvReturn,'零京','京')
SET @chvReturn=Replace(@chvReturn,'零兆','兆')
SET @chvReturn=Replace(@chvReturn,'零亿','亿')
SET @chvReturn=Replace(@chvReturn,'零万','万')

SET @chvReturn=Replace(@chvReturn,'京兆','京')
SET @chvReturn=Replace(@chvReturn,'京亿','京')
SET @chvReturn=Replace(@chvReturn,'京万','京')
SET @chvReturn=Replace(@chvReturn,'兆亿','兆')
SET @chvReturn=Replace(@chvReturn,'兆万','兆')
SET @chvReturn=Replace(@chvReturn,'亿万','亿')

SET @chvReturn=Replace(@chvReturn,'零元','元')
SET @chvReturn=Replace(@chvReturn,'零角零分','整')
SET @chvReturn=Replace(@chvReturn,'零角','零')
SET @chvReturn=Replace(@chvReturn,'零分','整')
SET @chvReturn=LTRIM(RTRIM(@chvReturn))

IF @sFsFlag = 1
SET @chvReturn = '负' + Ltrim(@chvReturn)

RETURN @chvReturn

END

‘陆’ SQL里怎么来实现“金钱值”+汉字的查询存储过程

页面上你用
5月1号A店总销售:<label id="food"></label>

后台
用个string data[] =你的查询方法,这样把数据全部装在data里面
然后赋值给label就可以了
food.text=data["food"];
data["food"]这里面的food是你数据库那个食品字段

‘柒’ sql 货币四舍五入

1> SELECT ROUND(1.56, 0), ROUND(1.56,1), ROUND(12.34, -2)
2> go

----- ----- ------
2.00 1.60 .00

(1 行受影响)

ROUND 函数可以处理 四舍五入

SQL Server 2005 可以用的, 2000没环境测试。

‘捌’ 利用access SQL语句求股票的实际收益

--试试下面的sql语句
selectb.股票名称,sum(b.收益)已收益,sum(b.持有数量)当前持有数量from(select股票名称,(casewhena.投资行为='买'thena.交易数量else(-1)*a.交易数量end)持有数量,(casewhena.投资行为='买'then(-1)*a.交易金额elsea.交易金额end)收益froma)bgroupbyb.股票名称

‘玖’ sql server 货币 字段 类型 一般用什么类型

货币的字段类型一般有int,float,money/smallmoney,decimal/numberic。

根据存储数据的精度不同选择:

int只能存储整数的钱。

money/smallmoney数据类型精确到它们所代表的货币单位的万分之一 。

decimal/numberic 可以自定义小数位和能存储的数据精度, 所以一般使用这种类型的人会多一些。

float 对货币这种需要精确值的数值不合适。

总结:

在财务方面最好实用money与decimal类型。

如果是简单的计算可以使用float类型,不过float类型在有些平台上取出数据并不是那么准确,有可能会丢失精度。所以说如果在性能稳定的平台中,开销不是很大,建议使用以上两种类型。

(9)sql菜单金钱计算扩展阅读:

SQL数据类型:

1、bit 整型

bit数据类型是整型,其值只能是0、1或空值。这种数据类型用于存储只有两种可能值的数据,如Yes 或No、True 或False 、On 或Off.

注意:很省空间的一种数据类型,如果能够满足需求应该尽量多用。

2、tinyint 整型

tinyint 数据类型能存储从0到255 之间的整数。它在你只打算存储有限数目的数值时很有用。这种数据类型在数据库中占用1 个字节。

3、smallint 整型

smallint 数据类型可以存储从- 2的15次幂(-32768)到2的15次幂(32767)之间的整数。这种数据类型对存储一些常限定在特定范围内的数值型数据非常有用。这种数据类型在数据库里占用2 字节空间。

4、int 整型

int 数据类型可以存储从- 2的31次幂(-2147483648)到2的31次幂 (2147483 647)之间的整数。存储到数据库的几乎所有数值型的数据都可以用这种数据类型。这种数据类型在数据库里占用4个字节。

5、decimal 精确数值型

decimal 数据类型能用来存储从-10的38次幂-1到10的38次幂-1的固定精度和范围的数值型数据。使用这种数据类型时,必须指定范围和精度。 范围是小数点左右所能存储的数字的总位数。精度是小数点右边存储的数字的位数。

6、numeric 精确数值型

numeric数据类型与decimal 相似。

7、smallmoney 货币型

smallmoney 数据类型用来表示钱和货币值。这种数据类型能存储从-214748.3648 到214748.3647 之间的数据,精确到货币单位的万分之一。

8、money 货币型

money数据类型用来表示钱和货币值。这种数据类型能存储从-9220亿到9220 亿之间的数据,精确到货币单位的万分之一。

9、float 近似数值型

float 数据类型是一种近似数值类型,供浮点数使用。说浮点数是近似的,是因为在其范围内不是所有的数都能精确表示。浮点数可以是从-1.79E+308到1.79E+308 之间的任意数。

10、real 近似数值型

real 数据类型像浮点数一样,是近似数值类型。它可以表示数值在-3.40E+38到3.40E+38之间的浮点数。

‘拾’ 在c#中如何用sql语句向access中插入货币值啊

Access 好像没有money类型,插入数据和字段类型没关系,因为保留几位小数是在money中设置的
count还是sum或者直接循环相加