以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于SQL查询语句求助  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=77520)

--  作者:扶风
--  发布时间:2015/11/19 16:49:00
--  [求助]关于SQL查询语句求助


此主题相关图片如下:11111.png
按此在新窗口浏览图片
老师 我们有如下代码

Forms(_frm).Visible = False

 

Dim sql As String = "S-elect  a.*,(s-elect khms f-rom {销售填写表} b where a.[xuhao]=b.[xuhao]) As [客户描述] from (s-elect {圆片陶瓷电容_独石电容料号表}.* F-rom {圆片陶瓷电容_独石电容料号表} Where jiean=True) a"

Dim q As new QueryBuilder

q.TableName = "电容导料历史"

q.SelectString = sql

q.Con-nec-tion-Name = "data"

q.Build

 

MainTable = Tables("电容导料历史")

执行的时候有如图所示的报错,但是类似的代码用内部数据源的时候能够成功执行,请问是何原因,怎么才能达到我想要的效果?

[此贴子已经被作者于2015/11/19 16:58:09编辑过]

--  作者:大红袍
--  发布时间:2015/11/19 17:07:00
--  

s-elect khms f-rom {销售填写表}

 

改成

 

s-elect top 1 khms f-rom {销售填写表}


--  作者:扶风
--  发布时间:2015/11/19 17:42:00
--  

好了 谢谢老师  top 1 不是只会加载一行吗?为什么这里这样用都出来了?

还有一个问题想请教老师 我在后面加了一句 order by tbrq 这里tbrq是一个时间类型的字段 为什么没有按照排列

[此贴子已经被作者于2015/11/19 17:54:38编辑过]

--  作者:大红袍
--  发布时间:2015/11/19 17:56:00
--  

你的是子查询。这句话的意思是 s-elect top 1 khms f-rom {销售填写表} b

 

根据a表当前行的数据,去取b表的一行数据。

 

每次一行。


--  作者:扶风
--  发布时间:2015/11/19 18:01:00
--  

还有一个问题想请教老师 我在后面加了一句 order by tbrq 这里tbrq是一个时间类型的字段 为什么没有按照排列


--  作者:大红袍
--  发布时间:2015/11/19 18:11:00
--  

默认按照 _Sortkey 或者 _Identify 或者 第一列排序 的。

 

你无法控制排序


--  作者:扶风
--  发布时间:2015/11/19 18:17:00
--  
有没有什么办法对检索的结果排序  如果用 inner join呢
--  作者:大红袍
--  发布时间:2015/11/19 19:31:00
--  
以下是引用扶风在2015/11/19 18:17:00的发言:
有没有什么办法对检索的结果排序  如果用 inner join呢

 

检索结果排序?加载出来以后。用tables().sort不就行了?

 

如果不用sort,你就得动态生成 _Sortkey,因为默认是根据此列排序的。