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


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

主题:sql语句的问题

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


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/1 16:24:00 [显示全部帖子]

提示什么错误?

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

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


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/1 16:25:00 [显示全部帖子]

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

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


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望: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自己分页

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


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/2 14:06:00 [显示全部帖子]

http://jingyan.baidu.com/article/72ee561abbf22de16138dfa4.html

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


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/2 15:31:00 [显示全部帖子]

这个地方没有优化的余地。只能是自己写sql进行分页


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


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/2 17:56:00 [显示全部帖子]

不用in的用法

s elect * form {订单明细} Inner join {客户表} on {客户表}.客户名称 = {订单明细}.客户名称  where 业务员 = '王一'


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


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/3 8:32:00 [显示全部帖子]

试试
se lect top 10  CAST((产品数量 * 产品销售价 * 100) as decimal(38, 2)) AS 金额 from {销售订单明细} ORDER BY 订单日期 DESC 

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


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/3 14:03:00 [显示全部帖子]

IFF(第一列=0,A,IFF(第一列=1,B,C))

Sel ect (Case 
When 第一列 = 0 Then 'A' 
When 第一列 = 1 Then 'B'   
Else 'C' 
End) As 第一列 From {学生}

 回到顶部