第一条:select amount_in from stocks_inout_jz where amount_in>0 and month_jz='2008年02月'
第二条:select sum(amount_in) from stocks_inout_jz where month_jz='2008年02月' 我执行上面的语句,出现如下结果:
第一条语句是空语句,但是第二条语句返回的值却时:28823037615171174.40为何呀?
第二条:select sum(amount_in) from stocks_inout_jz where month_jz='2008年02月' 我执行上面的语句,出现如下结果:
第一条语句是空语句,但是第二条语句返回的值却时:28823037615171174.40为何呀?
解决方案 »
- 关于反回周次的问题
- 查询并删除一个表的前10行
- 求一难度的SQL语句
- 请教sql server2000数据库查询问题
- 一个蹊跷的SQL日期问题
- 有关在SQLSERVER2005中新建ORACLE发布服务器的问题
- 紧急求救,关于sql 2000的问题~!
- 关于VFP主窗口背景的问题!!!!!
- 初级问题:object_id(N'[dbo].[TableName]')中,N''是何意思?
- SQL server 2000+SQL server2000 JDBC Driver+Java数据库连接的种种困扰,高分求救
- 急求:统计数据(一解决即结贴)
- 我有如下的记录,有些ID号重复,如果重复的就取一条,没有重复就取该条,用 distinct 好像不得呢!!!
应该也没有数据,其实很简单就是没有条件满足!!!
select amount_in from stocks_inout_jz where amount_in> 0
应该也没有数据,其实很简单就是没有条件满足!!!
答:是没有懑足的条件,但是为何第二条语句却出现合计数据?
发表于:2008-02-11 08:57:502楼 得分:0
amount_in 数据类型是什么?
答:amount_in是 NUMERIC(12,2)数据类型发表于:2008-02-11 09:52:373楼 得分:0
檢查Amount_in是否有損壞的索引? 答:我没有建立Amount_In的索引呀
where amount_in> 0 and month_jz='2008年02月'
第二条:
where month_jz='2008年02月' 条件不一样
改一下再查询一下
第二条:select sum(amount_in) from stocks_inout_jz where amount_in> 0 and month_jz='2008年02月'
第一条:select amount_in from stocks_inout_jz where amount_in> 0 and month_jz='2008年02月'
第二条:select sum(amount_in) from stocks_inout_jz where month_jz='2008年02月' 两句的条件不一样啊第二条:select sum(amount_in) from stocks_inout_jz where month_jz='2008年02月'
等价于select amount_in from stocks_inout_jz where (amount_in<= 0 or amount_In is null) and month_jz='2008年02月'
2、select amount_in from stocks_inout_jz where month_jz='2008年02月' order by amount_in desc 进行测试下
第二条:select sum(amount_in) from stocks_inout_jz where month_jz='2008年02月' 都改成
select *
检查一下输出数据就知道了。
declare @t table(dd numeric(12,2))
declare @i int
set @i = 1
while @i <10
begin
insert @t select -9876543210.12
set @i = @i +1
end
select sum(dd) sum from @t
/*
sum
----------------------------------------
-88888888891.08
*/
declare @t table(dd numeric(38,2))
declare @i int
set @i = 1
while @i <10
begin
insert @t select -98765432109876543210987654321098765432.12
set @i = @i +1
end
select sum(dd) sum from @t
/*
服务器: 消息 1007,级别 15,状态 1,行 6
数字 '98765432109876543210987654321098765432.12' 超出了数字表示范围(最大精度为 38 位有效数字)。
*/
declare @i int
set @i = 1
while @i <10
begin
insert @t select -987654321098765432109876543210987654.12
set @i = @i +1
end
select * from @t
select sum(dd) sum from @t
/*
服务器: 消息 8115,级别 16,状态 2,行 10
将 expression 转换为数据类型 numeric 时发生算术溢出错误。
*/