-
-
lebron 数据达人Lv4
发表于2019-8-20 10:49
悬赏1
已解决
楼主
3月条件:(V_MOBILITY_SUM_COPY.MAT_DATE> datetostr(od(@riqi,'m+2'),'yyyy-mm-dd') & V_MOBILITY_SUM_COPY.MAT_DATE<= datetostr(od(@riqi,'m+3'),'yyyy-mm-dd')) & V_MOBILITY_SUM_COPY.DATA_DATE=datetostr(@riqi,'yyyy-mm-dd')
4月条件:(V_MOBILITY_SUM_COPY.MAT_DATE> datetostr(od(@riqi,'m+3'),'yyyy-mm-dd') & V_MOBILITY_SUM_COPY.MAT_DATE<= datetostr(od(@riqi,'m+4'),'yyyy-mm-dd')) & V_MOBILITY_SUM_COPY.DATA_DATE=datetostr(@riqi,'yyyy-mm-dd')
为什么这两个条件相同,只是加的数不同,加上4月的条件后所有的数据都没了


27个回答
lebron 发表于 2019-8-20 17:17
日期参数对应的是DATA_DATE,这是真实时间,MAT_DATE为以后的时间,对应的不同的数值,一个DATE_DATE对应 ...
我理解哈 不需要两个时间字段去算时间间隔的,参数中有个“起止日期”,里面就有你的这些时间差,过滤条件的话直接写xxb.bbq=@@bbq,
系统会自动去解析这个时间的,看下这个SQL


Edmund 发表于 2019-8-20 17:26
我理解哈 不需要两个时间字段去算时间间隔的,参数中有个“起止日期”,里面就有你的这些时间差,过滤条 ...
报表中的问题是,只要MAT_DATE在数据库中有数据时,就能正常显示,结果也正确,但一旦浮动为的里面单元格中有MAT_DATE在数据库中不存在的值时,报表就只显示1行0,连有数据的值也不显示了。









lebron 发表于 2019-8-20 17:44
报表中的问题是,只要MAT_DATE在数据库中有数据时,就能正常显示,结果也正确,但一旦浮动为的里面单元 ...
为什么在发图片时,在里面写了描述,但发出来之后就不见了
lebron 发表于 2019-8-20 17:44
报表中的问题是,只要MAT_DATE在数据库中有数据时,就能正常显示,结果也正确,但一旦浮动为的里面单元 ...
这个这里看sql没用哦,,你就把有问题那一小部分拿出来,拷贝到另一张分析表中去,写同样的过滤条件 然后看他生成的sql 哪里的过滤条件不对。
过滤条件都会作用在where后面的
孤傲的旋律 发表于 2019-8-20 17:53
这个这里看sql没用哦,,你就把有问题那一小部分拿出来,拷贝到另一张分析表中去,写同样的过滤条件 然后 ...
V_MOBILITY_SUM_COPY.MAT_DATE='2019-11-05'
就是这个问题,因为当2019-11-05字段MAT_DATE在数据库中是没有的,所以这个条件是不是就相当于 空值=‘2019-11-05’,就是这个原因导致的报表显示错误

lebron 发表于 2019-8-20 17:59
V_MOBILITY_SUM_COPY.MAT_DATE='2019-11-05'
就是这个问题,因为当2019-11-05字段MAT_DATE在数据库中是 ...
就是MAT_DAYE下有显示的时间,该条件下的数据的显示都是正确的,但MAT_DATE里面没有的时间,加上这种条件后报表就不正确了
lebron 发表于 2019-8-20 17:59
V_MOBILITY_SUM_COPY.MAT_DATE='2019-11-05'
就是这个问题,因为当2019-11-05字段MAT_DATE在数据库中是 ...
意思是数据库里面没有这个字段MAT_DATE???那咋还根据这个字段过滤?
lebron 发表于 2019-8-20 18:06
有这个字段,但这个字段下不是每个条件下的时间都有
只要报表条件里含有MAT_DATE不存在的值时,也就是这个字段在数据库中没有的时间,报表就只显示1行0
lebron 发表于 2019-8-20 18:10
只要报表条件里含有MAT_DATE不存在的值时,也就是这个字段在数据库中没有的时间,报表就只显示1行0 ...
那你是想这个字段中的数据为空的时候过滤全部吗?