-
nannan 数据老手Lv5
发表于2019-6-3 09:45
悬赏1
已解决
楼主
left(STARTGD.START_TIME,8)<=today() and left(STARTGD.START_TIME,8)>=od(today(),'m=1;d=1') 过滤条件里面写了这些,STARTGD.START_TIME 是int12 整数类型,但是运行出来结果为空,这个语句是哪里有问题吗
最佳答案
本帖最后由 孤傲的旋律 于 2019-6-3 15:22 编辑
数据库中都查不出来就不是BI层面的问题啦 您看下数据库中的sql怎么才是正确的呢。然后再到BI中去分析过滤条件设置为STARTGD.SFZCX='1' and substr(STARTGD.START_TIME,0,8)<=left(today(),8) and substr(STARTGD.START_TIME,0,8)>=od(left(today(),8),'m=1;d=1')
nannan 发表于 2019-6-3 10:40
有的,我截图里面 5月份都有一大堆,怎么会计算不出来呢
数据库中都查不出来就不是BI层面的问题啦 您看下数据库中的sql怎么才是正确的呢。然后再到BI中去分析过滤条件设置为STARTGD.SFZCX='1' and substr(STARTGD.START_TIME,0,8)<=left(today(),8) and substr(STARTGD.START_TIME,0,8)>=od(left(today(),8),'m=1;d=1')
13个回答
today()的格式是yyyymmdd这种,您STARTGD.START_TIME这个字段的日期格式是否也是yyyymmdd呢 要保持格式一致才能正常过滤哦
孤傲的旋律 发表于 2019-6-3 09:50
today()的格式是yyyymmdd这种,您STARTGD.START_TIME这个字段的日期格式是否也是yyyymmdd呢 要保持格式一致 ...
是年月日时分的格式,但是我用left函数取了前8位了呀
孤傲的旋律 发表于 2019-6-3 09:58
看一下结果表生成的SQL,数据上的问题从sql层面判断比较快一点
select sum(a.SFZCX) as A1
from SW_STARTGD a
where ((a.SFZCX = 1) AND (a.START_TIME <= '20190603') AND (a.START_TIME >= '20190101'))
这是sql也没问题啊,但是就是没有结果生成
nannan 发表于 2019-6-3 10:01
select sum(a.SFZCX) as A1
from SW_STARTGD a
where ((a.SFZCX = 1) AND (a.START_TIME = '20190101') ...
这个放到数据库中去能查出来数据吗?
nannan 发表于 2019-6-3 10:12
数据库里也查不出来,但是数据是有的,6月3日之前有一大堆数据,为什么用这个语句算不出来呢,语句也没有 ...
a.START_TIME <= '20190603') AND (a.START_TIME >= '20190101'
看这个范围内有没有数据啊。
本帖最后由 孤傲的旋律 于 2019-6-3 15:22 编辑
nannan 发表于 2019-6-3 10:40
有的,我截图里面 5月份都有一大堆,怎么会计算不出来呢
数据库中都查不出来就不是BI层面的问题啦 您看下数据库中的sql怎么才是正确的呢。然后再到BI中去分析过滤条件设置为STARTGD.SFZCX='1' and substr(STARTGD.START_TIME,0,8)<=left(today(),8) and substr(STARTGD.START_TIME,0,8)>=od(left(today(),8),'m=1;d=1')
孤傲的旋律 发表于 2019-6-3 10:56
数据库中都查不出来就不是BI层面的问题啦 您看下数据库中的sql怎么才是正确的呢。然后再到BI中去分析 ...
数据库中可以查出来,之前忘记加substr了,数据库用的是Oracle,所以我用substr截取时间了,BI里面用left截取为什么就查不出来呢