以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]SQLJoinTableBuilder生成查询表(已解决)  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97375)

--  作者:yyzlxc
--  发布时间:2017/3/10 19:01:00
--  [求助]SQLJoinTableBuilder生成查询表(已解决)
有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编辑过]

--  作者:有点蓝
--  发布时间: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
--  发布时间:2017/3/10 21:24:00
--  
谢谢蓝老师的指教,问题解决。

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


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


--  作者:yyzlxc
--  发布时间: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编辑过]

--  作者:有点蓝
--  发布时间:2017/3/10 22:02:00
--  
上面的代码没有问题,检查其它代码
--  作者:yyzlxc
--  发布时间: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"


--  作者:有点蓝
--  发布时间: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
--  发布时间:2017/3/11 9:11:00
--  
是这个原因,知道了。谢谢蓝老师!!