以文本方式查看主题 - 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表,运行报错如截图,如何解决,请蓝老师指教,谢谢!! |
-- 作者: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 -- 是这个原因,知道了。谢谢蓝老师!! |