1  /  1  页   1 跳转 查看:5220

查询的结果不对。

查询的结果不对。

select convert(varchar(10),begindate,120),sum(realamount) from t_sale_h A inner join t_sale_d B 
on a.saleno=b.saleno where  datediff(day,begindate,getdate())=1
group by convert(varchar(10),begindate,120) 

结果:
2007-10-01
407.900000

select sum(a.realamount)
from  t_sale_h b , t_sale_d a
where  a.saleno=b.saleno and b.begindate>'2007-09-30'and b.begindate<'2007-10-02'

结果:868.850000

这是什么原因?

begindate 为 datetime 格式  (2007-08-04 11:37:39.670)
最后编辑zhouyulv 最后编辑于 2007-10-02 12:06:10
 

回复:查询的结果不对。

版主:在吗/请帮忙看下。。
 

回复:查询的结果不对。

b.begindate>'2007-09-30'

应该为

b.begindate>='2007-10-01'
虽有智慧,不如乘势;虽有鎡基,不如待时。
君子学以聚之,问以辨之,宽以居之,仁以行之。
独学而无友,则孤陋而寡闻。
 

回复:查询的结果不对。

数据还是不对。。版主。你帮我看看。。
select convert(varchar(10),begindate,120),sum(realamount) from t_sale_h A inner join t_sale_d B 
on a.saleno=b.saleno where  datediff(day,begindate,getdate())=1
group by convert(varchar(10),begindate,120) 
这样错在那里。。



select sum(a.realamount)
from  t_sale_h b , t_sale_d a
where  a.saleno=b.saleno and b.begindate>='2007-09-30'--and b.begindate<'2007-10-01'
结果:1155.7
最后编辑zhouyulv 最后编辑于 2007-10-02 12:55:41
 

回复:查询的结果不对。

datediff(day,begindate,getdate())=1
b.begindate>'2007-09-30'and b.begindate<'2007-10-02'
这2个表达式意义不一样,数据很可能不一样的
你考虑下你的真正需求
 

回复:查询的结果不对。

datediff(day,begindate,getdate())=1
时间范围为2007-10-01 0:0:0.000时到23:59:59.997
而b.begindate>'2007-09-30'and b.begindate<'2007-10-02'
时间范围为'2007-09-30 0:0:0.003'到'2007-10-01 23:59:59.997'
 
1  /  1  页   1 跳转

版权所有 微软BI开拓者 

Powered by Discuz!NT 2.1.202    Copyright © 2001-2012 Comsenz Inc.
Processed in 0.0625024 second(s) , 3 queries.
返顶部