Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
sql查询表遭遇难题,部分限定条件无法查询到数据,
同样一段sql代码,只是其中一个条件不一样,结果查询结果不一样:
补充说明,上面的问题由于是通过外部数据库ORACEL查询数据,就算是我将项目打包放到附件,也无法进行验证运行(链接不到外部数据库),所以我采取描述问题的方式:
通过进一步测试,如果是将sql语句精简,只针对有“T”的表进行查询,通过sql查询窗口,可以得到结果数据,如下,
不好意思,没有考虑到你们看到的图会挂掉,我自己浏览可以,按照要求通过附件上传上了。
下载信息 [文件大小: 下载次数: ] | |
![]() |
--------大家不用费力了,我估计我找到原因了,等一下补充。
这是微软和甲骨文打架吧?
换甲骨文自家的数据访问组件看看:
http://www.oracle.com/technetwork/cn/database/windows/downloads/index-101312-zhs.html
或者你还是保留条件:
GCC.SEGMENT1 = 'T'
逐个删除其他条件看看。
呵呵,狐爸还真幽默,原因找到了,首先我要道歉,应用的sql语句出现问题,同样的查询我有两段语句,上面的语句居然有问题,而我平时用的语句固定到了程序中,找到正确的sql语句后,再重新测试通过,正确语句如下:
SELECT j1.description 公司名称,
gcc.segment1 公司代码,
gb.period_name 期间名称,
GCC.SEGMENT3 || ' ' || j.description 科目,
j.description 科目名称,
GCC.SEGMENT3 科目代码,
decode(j.structured_hierarchy_level,
8,
'一级科目',
5,
'二级科目',
6,
'三级科目',
'四级科目') 科目级次,
gb.begin_balance_dr - gb.begin_balance_cr 期初数,
gb.period_net_dr 本期借方发生额,
gb.period_net_cr 本期贷方发生额,
gb.period_net_dr - gb.period_net_cr 本期净额,
gb.begin_balance_dr - gb.begin_balance_cr + gb.period_net_dr -
gb.period_net_cr 期末数
FROM APPS.gl_balances gb,
APPS.gl_code_combinations gcc,
APPS.FND_FLEX_VALUES_VL J,
apps.FND_FLEX_VALUES_VL J1
WHERE GCC.CODE_COMBINATION_ID = GB.CODE_COMBINATION_ID
and gcc.segment3 = j.flex_value
and gcc.segment1 = j1.flex_value
and j.Flex_Value_Set_Id = '1007062'
and j1.Flex_Value_Set_Id = '1007060'
and GCC.SEGMENT2 = 'T'
and GCC.SEGMENT4 = 'T'
and GCC.SEGMENT3 not in (1000, 2000, 5100, 5101, 5400, 5401, 3000)
and GCC.SEGMENT5 = 'T'
and GCC.SEGMENT6 = 'T'
and GCC.SEGMENT7 = 'T'
and gb.actual_flag = 'A'
and GCC.SEGMENT1= 'T'
and gb.period_name='JUN-11'
order by 6
明天有时间,看看两段语句的差别,为什么会造成上面查询不到数据的错误。
呵呵,恭喜,其实我也稀里糊涂的。