Foxtable(狐表)用户栏目专家坐堂 → [求助]SQLJoinTableBuilder生成查询表(已解决)


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

主题:[求助]SQLJoinTableBuilder生成查询表(已解决)

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
[求助]SQLJoinTableBuilder生成查询表(已解决)  发帖心情 Post By:2017/3/10 19:01:00 [只看该作者]

有A表和B表,hb列为关联列,ff列为B表列,其余为A表列。其中在A表中,bh列为不重复,而在B表中,bh列有重复值。
请教各位老师,如何使通过SQLJoinTableBuilder生成的查询表,bh列不重复,ff列为对应bh的最大值。

Dim jb As New SQLJoinTableBuilder("abc","A")
jb.Co nnec tion Name = "sjy"
jb.Ad e("A","bh","B","bh")
jb.AddCols("{A}.bh","aa","bb",""cc","ff")
jb.Build()
[此贴子已经被作者于2017/3/11 9:11:15编辑过]

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


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


Dim q As new QueryBuilder
q.TableName = 
"销量统计"
q.Selec tString = 
"Sel ect a.*,b.ff from A表 As a Inner join (S elect bh,max(ff) As ff from B表 group by bh) As b on a.bh = b.bh"
q.Build

MainTable 
Tables("销量统计"
)

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2017/3/10 21:24:00 [只看该作者]

谢谢蓝老师的指教,问题解决。

将通过SQLCommand生成的临时表dt1替代A表,运行报错如截图,如何解决,请蓝老师指教,谢谢!!


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


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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2017/3/10 21:27:00 [只看该作者]

代码如下:


Dim cmd1 As New SQL Comm and
cmd1.Co nnec tion Name = "JG"
cmd1.CommandText = "S  elect bh,rq,zr From {DA}"
Dim dt1 As DataTable = cmd1.ExecuteReader()

[此贴子已经被作者于2017/3/10 21:32:38编辑过]

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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/10 22:02:00 [只看该作者]

上面的代码没有问题,检查其它代码

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2017/3/10 22:10:00 [只看该作者]

就是用dt1替换掉表A呀,其他都没有动,运行出错的。

S elect a.bh,db,xm,csrq,rjrq,zr,b.ljrq f rom dt1 As a Inner join (S elect bh,max(ljrq) As ljrq f rom 表B group by bh) As b on a.bh = b.bh"


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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/10 22:39:00 [只看该作者]

临时表不能在sql中再次使用


S elect a.bh,db,xm,csrq,rjrq,zr,b.ljrq f rom (S  elect bh,rq,zr From {DA}) As a Inner join (S elect bh,max(ljrq) As ljrq f rom 表B group by bh) As b on a.bh = b.bh"

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2017/3/11 9:11:00 [只看该作者]

是这个原因,知道了。谢谢蓝老师!!

 回到顶部