Foxtable(狐表)用户栏目专家坐堂 → [求助]SQL视图取数


  共有2028人关注过本帖树形打印复制链接

主题:[求助]SQL视图取数

帅哥哟,离线,有人找我吗?
lgj716330
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1295 积分:10009 威望:0 精华:0 注册:2013/11/8 15:27:00
[求助]SQL视图取数  发帖心情 Post By:2019/8/20 10:15:00 [只看该作者]

Dim bd1 As New SQLGroupTableBuilder("统计表11", "ABC_bmfzzz")
bd1.C
bd1.AddTable("ABC_bmfzzz","部门编号","责任中心档案","部门编号") 
Dim dt1 As fxDataSource
bd1.Groups.AddDef("月份") 
bd1.Totals.AddDef("借方金额","本年费用") 
bd1.Filter = "年份 = " & tj1 & " and [科目编码] like '6602%'  And (" & filter & ")" 
dt1 = bd1.BuildDataSource()
问题可能在以下这句代码
bd1.Filter = "年份 = " & tj1 & " and [科目编码] like '6602%'  And (" & filter & ")" 

上述代码从SQL数据库视图中取不到数据,没错误提示,但去掉and [科目编码] like '6602%' 以后又可以取到数据,是不是这里的LIKE用法有误
[此贴子已经被作者于2019/8/20 10:17:43编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105489 积分:536436 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/20 10:29:00 [只看该作者]

like用法没有问题,取的是6602开头的编码。

msgbox("年份 = " & tj1 & " and [科目编码] like '6602%'  And (" & filter & ")" ) 看看完整条件,是否有符合此条件的数据

 回到顶部
帅哥哟,离线,有人找我吗?
lgj716330
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1295 积分:10009 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2019/8/20 10:44:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
lgj716330
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1295 积分:10009 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2019/8/20 10:51:00 [只看该作者]

在用以下代码在数据库试了下,也是空的。但实际数据查了有的
s elect 科目编码,借方金额
from ABC_bmfzzz
where 科目编码 like '6602%'

但我where 科目编码 = '66020701',就能查出数据来

[此贴子已经被作者于2019/8/20 10:53:18编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lgj716330
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1295 积分:10009 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2019/8/20 11:15:00 [只看该作者]

说明下,这个SQL视图是从表值函数中取数过来的,不知会不会是这个影响

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105489 积分:536436 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/20 11:21:00 [只看该作者]

没有数据测试,不清楚。先把4楼sql调通了再说

 回到顶部
帅哥哟,离线,有人找我吗?
lgj716330
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1295 积分:10009 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2019/8/20 11:47:00 [只看该作者]

看了下数据库,科目编码的数据类型是float,会不会是这个数据类型的问题
[此贴子已经被作者于2019/8/20 13:07:45编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点酸
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1093 积分:6682 威望:0 精华:0 注册:2013/7/1 9:05:00
  发帖心情 Post By:2019/8/20 13:57:00 [只看该作者]

数值型的数据,不能用like,请改为字符型.
或者:
cast([科目编码] As varchar) Like '6602%'

 回到顶部
帅哥哟,离线,有人找我吗?
lgj716330
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1295 积分:10009 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2019/8/20 14:14:00 [只看该作者]

用楼上这个在查询里测试结果还是一样出不来,偿试着先转换数据类型

S ELECT     CAST(科目编号 AS varchar) AS 科目编码, 部门编号, iperiod AS 月份, cbegind_c AS 期初方向, mb AS 期初金额, md AS 借方金额, mc AS 贷方金额, 
                      cendd_c AS 期末方向, me AS 期末金额, iyear AS 年份, iYPeriod AS 年月
FROM         UFDATA_100_2019.dbo.fzzzhz() AS fzzzhz_1

以上是视图代码,执行结果没问题

s elect 科目编码,借方金额
from mgs_bmfzzz
where 科目编码 like '6602%'
上述代码测试从视图里取数,但提示列名“科目编码”无效

[此贴子已经被作者于2019/8/20 14:33:02编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点酸
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1093 积分:6682 威望:0 精华:0 注册:2013/7/1 9:05:00
  发帖心情 Post By:2019/8/20 14:43:00 [只看该作者]

在Foxtable:

Sele ct TOP 1  From 视图名  

看看到底列名是什么

计算机不会撒谎,既然提示列名错误,要么你提供的视图名错了,要么真的就是列名错了,认真检查。


 回到顶部
总数 16 1 2 下一页