以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]查询出错  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=103792)

--  作者:183966998
--  发布时间:2017/7/17 10:20:00
--  [求助]查询出错

图片点击可在新窗口打开查看此主题相关图片如下:360截图20170717101515493.jpg
图片点击可在新窗口打开查看

Dim bm As String = "查询表"
Dim jb As New SQLJoinTableBuilder(bm,"购买记录")
jb.C \'使用外部表,一定要设置数据源名称
jb.AddTable("购买记录","金卡号","JK_客户基本信息","金卡号")
jb.AddCols("专卖店",True)
jb.AddCols("客户分类",True)
jb.AddCols("{JK_客户基本信息}.金卡号",True)
jb.AddCols("姓名",True)
jb.AddCols("性别",True)
jb.AddCols("年龄",True)
jb.AddCols("电话",True)
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table

jb.AddCols("手机",True)
jb.AddExp("最后日期","Max(购买时间)")
jb.AddCols("产品种类",True)
jb.AddCols("产品数量",True)
jb.AddCols("服用人数",True)
jb.AddCols("症状",True)
jb.AddCols("{JK_客户基本信息}.备注",True)
jb.AddCols("服务人员",True)
jb.Build()
MainTable = Tables(bm)

请教各位老师如何显示客户下订购每种产品类型的最后一次日期???代码是哪里不对?


我需要求得每个客户订购每个产品最后一次时间及数量
[此贴子已经被作者于2017/7/17 11:18:11编辑过]

--  作者:有点甜
--  发布时间:2017/7/17 11:06:00
--  
报什么错?请做个例子上来测试。代码看着没问题。
--  作者:183966998
--  发布时间:2017/7/17 11:21:00
--  回复:(有点甜)报什么错?请做个例子上来测试。代码...
Dim bm As String = "查询表"
Dim jb As New SQLJoinTableBuilder(bm,"JK_客户基本信息")
jb.C \'使用外部表,一定要设置数据源名称
jb.AddTable("JK_客户基本信息","金卡号","购买记录","金卡号")
jb.AddCols("{JK_客户基本信息}.金卡号",True)
jb.AddCols("专卖店","客户分类","姓名","性别","年龄","服用人数","症状","服务人员","电话","手机","产品种类",True)
jb.AddExp("最后日期","Max(购买时间)")
jb.AddCols("{JK_客户基本信息}.备注",True)
jb.Build()
MainTable = Tables(bm)

之前的代码我改成这样了,能查询每个客户订购产品种类的最后一次日期,可是我加入订购产品数量时,查询出来的数据就不是每个产品的最后一次购买时间,而是客户所有产品购买时间

--  作者:有点甜
--  发布时间:2017/7/17 11:58:00
--  
Dim bm As String = "查询表"
Dim jb As New SQLJoinTableBuilder(bm,"JK_客户基本信息")
jb.AddTable("JK_客户基本信息","金卡号","购买记录","金卡号")
jb.AddCols("{JK_客户基本信息}.金卡号",True)
jb.AddCols("专卖店","客户分类","姓名","性别","年龄","服用人数","症状","服务人员","电话","手机","产品种类",True)
jb.AddExp("最后日期","Max(购买时间)")
jb.AddCols("{JK_客户基本信息}.备注",True)
Dim sql = jb.BuildSql
sql = "select *, 产品数量 as 购买数量 from {购买记录} as a inner join (" & sql & ") as b on a.金卡号 = b.金卡号 and a.购买时间 = b.最后日期"
output.show(sql)
Dim q As new QueryBuilder
q.TableName = bm
q.ConnectionName = "数据源"
q.SelectString = sql
q.Build
MainTable = Tables(bm)
[此贴子已经被作者于2017/7/17 12:37:47编辑过]

--  作者:183966998
--  发布时间:2017/7/17 12:17:00
--  回复:(有点甜)Dim bm As String = "查询表"Dim jb ...
老师,我执行命令,代码报错
图片点击可在新窗口打开查看此主题相关图片如下:360截图20170717121615412.jpg
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2017/7/17 12:38:00
--  
Dim bm As String = "查询表"
Dim jb As New SQLJoinTableBuilder(bm,"JK_客户基本信息")
jb.AddTable("JK_客户基本信息","金卡号","购买记录","金卡号")
jb.AddCols("{JK_客户基本信息}.金卡号",True)
jb.AddCols("专卖店","客户分类","姓名","性别","年龄","服用人数","症状","服务人员","电话","手机","产品种类",True)
jb.AddExp("最后日期","Max(购买时间)")
jb.AddCols("{JK_客户基本信息}.备注",True)
Dim sql = jb.BuildSql
sql = "select *, 产品数量 as 购买数量 from {购买记录} as a inner join (" & sql & ") as b on a.金卡号 = b.金卡号 and a.购买时间 = b.最后日期"
output.show(sql)
Dim q As new QueryBuilder
q.TableName = bm
q.ConnectionName = "数据源"
q.SelectString = sql
q.Build
MainTable = Tables(bm)

--  作者:183966998
--  发布时间:2017/7/17 15:50:00
--  回复:(有点甜)Dim bm As String = "查询表"Dim jb ...
老师,麻烦您在帮我看看,我执行sql查询数据时能预览,但是生成不了表,提示下图,是什么原因导致的?
图片点击可在新窗口打开查看此主题相关图片如下:360截图20170717154917704.jpg
图片点击可在新窗口打开查看
提示
图片点击可在新窗口打开查看此主题相关图片如下:360截图20170717155111130.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2017/7/17 15:51:32编辑过]

--  作者:有点甜
--  发布时间:2017/7/17 16:05:00
--  

根据你给的例子,代码这样写

 

Dim bm As String = "查询表"
Dim jb As New SQLJoinTableBuilder(bm,"客户表")
jb.AddTable("客户表","卡号","订单","卡号")
jb.AddCols("{客户表}.卡号",True)
jb.AddCols("姓名","订购类型", True)
jb.AddExp("最后日期","Max(购买时间)")
Dim sql = jb.BuildSql
sql = "select b.*,订购数量 from {订单} as a inner join (" & sql & ") as b on a.卡号 = b.卡号 and a.购买时间 = b.最后日期"
output.show(sql)
Dim q As new QueryBuilder
q.TableName = bm
q.SelectString = sql
q.Build
MainTable = Tables(bm) 


--  作者:183966998
--  发布时间:2017/7/17 16:11:00
--  回复:(有点甜)根据你给的例子,代码这样写 ...
谢谢您老师,我通过这样的代码,得到了我想要的结果排除了客户所订购产品的重复值,得到了最后购买时间,O(∩_∩)O谢谢,学习不少东西

Dim bm As String = "查询表"
Dim jb As New SQLJoinTableBuilder(bm,"JK_客户基本信息")
jb.C \'使用外部表,一定要设置数据源名称
jb.AddTable("JK_客户基本信息","金卡号","购买记录","金卡号")
jb.AddCols("{JK_客户基本信息}.金卡号",True)
jb.AddCols("专卖店","客户分类","姓名","性别","年龄","服用人数","症状","服务人员","电话","手机","产品种类",True)
jb.Filter = "产品种类"
jb.Distinct = True
jb.AddExp("最后日期","Max(购买时间)")
jb.AddCols("{JK_客户基本信息}.备注",True)
jb.Build()
MainTable = Tables(bm)


--  作者:183966998
--  发布时间:2017/7/17 16:13:00
--  回复:(有点甜)根据你给的例子,代码这样写 ...
我在学学你给我例子做的代码,太感谢了