Foxtable(狐表)用户栏目专家坐堂 → sql语句的问题


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

主题:sql语句的问题

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


加好友 发短信
等级:六尾狐 帖子:1467 积分:11412 威望:0 精华:0 注册:2013/11/24 22:10:00
sql语句的问题  发帖心情 Post By:2016/9/1 16:12:00 [只看该作者]

我这个窗口一直没有修改过,以前一直都没有问题,这段时间不能用了,还有几个窗口也发现这个问题,是SQL语句的问题,为什么会这样呢?

代码如下:

With Tables("备案分析窗口_Tbab").DataTable
    
    .LoadFilter = "[_Identify] In (S el ect max([_Identify]) from {备案信息确定表3} group by 备案编号)"
    'MessageBox.show(.LoadFilter)
    '.LoadFilter = ""
    '.LoadOrder = "Identify DESC"
    .LoadTop = 30
    .LoadOver = "_Identify"
    .LoadReverse = True
    .LoadPage = 0
    MessageBox.show(1)
    .Load()
    MessageBox.show(2)
    Dim a As WinForm.Label = e.Form.Controls("Label1")
    a.text = "共计" & .TotalPages & "页.当前页为1页."
End With
经过测试,是Load 那里就出错了,这种语句要怎么改呢?


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


加好友 发短信
等级:六尾狐 帖子:1467 积分:11412 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2016/9/1 16:20:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:c)y{no~7}nqvu36wcebfq.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:105247 积分:535184 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/1 16:24:00 [只看该作者]

提示什么错误?

去掉
    .LoadOver = "_Identify"
    .LoadReverse = True
试试

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


加好友 发短信
等级:超级版主 帖子:105247 积分:535184 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/1 16:25:00 [只看该作者]

那是查询超时了,sql中数据多的话用In的效率是很差的,特别还要分页

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


加好友 发短信
等级:六尾狐 帖子:1467 积分:11412 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2016/9/1 16:44:00 [只看该作者]

以前为什么没有问题,还挺快的。数据库只是多了些数据,不会太多的。

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


加好友 发短信
等级:六尾狐 帖子:1467 积分:11412 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2016/9/1 16:52:00 [只看该作者]

试了三楼的方法,不行。还是会出错

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


加好友 发短信
等级:六尾狐 帖子:1467 积分:11412 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2016/9/1 16:59:00 [只看该作者]

还有就是:原来我的SQL语句:以前一直都没有问题,用了快一年多了。这段时间也开始出错,图也上上面那个。

 

FilterVal = "订单编号 in (s el ect [_Identify] from {销售订单主表} where 订单类型 = '" & lx & "' And 送货日期 >= '" & dt1 & "' and 送货日期 <= '" & dt2 & "' and 所属公司 = '" & gs & "' And CID In (S e lect [_Identify] from {客户资料表} where " & Filter3 & " And 所属公司 = '" & gs & "'))"

 

但是我改成这样以后,就没有问题了。

 

FilterVal = "订单编号 in (s el ect [_Identify] from {销售订单主表} where 订单类型 = '" & lx & "' And 送货日期 >= '" & dt1 & "' and 送货日期 <= '" & dt2 & "' and 所属公司 = '" & gs & "') And CID In (S el ect [_Identify] from {客户资料表} where " & Filter3 & " And 所属公司 = '" & gs & "')"

 

速度也没有问题。真是奇怪!


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


加好友 发短信
等级:六尾狐 帖子:1467 积分:11412 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2016/9/1 17:06:00 [只看该作者]

LoadFilter = "[_Identify] In (S el ect max([_Identify]) from {备案信息确定表3} group by 备案编号)"   这种真的不会改了。当初是大红袍老师教我写的。

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


加好友 发短信
等级:超级版主 帖子:105247 积分:535184 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/1 17:46:00 [只看该作者]

这种用“in”的越用到后面问题越大,尽量避免使用。

把下面sql做成视图试试:
S el ect max([_Identify]) from {备案信息确定表3} group by 备案编号

然后改成这样
LoadFilter = "[_Identify] In (S el ect [_Identify] from {视图名称} )"

特殊用法建议用sql自己分页

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


加好友 发短信
等级:六尾狐 帖子:1467 积分:11412 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2016/9/2 11:55:00 [只看该作者]

有点蓝老师

 

如何做视图啊?能说的祥细点,或者给点资料来看看吗?多谢!


 回到顶部
总数 27 1 2 3 下一页