以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- 通过目录树的条件来做子查询 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=53491)
|
-- 作者:fubblyc
-- 发布时间:2014/7/9 10:31:00
-- 通过目录树的条件来做子查询
各位老师好,遇到一个基础的问题研究半天没弄会,请教下老师。。
此主题相关图片如下:界面.jpg
想实现,通过目录树选择的条件来做子查询
Dim trv As WinForm.TreeView = e.Sender Dim flt As String For Each nd As WinForm.TreeNode In e.node.Nodes \'清除子节点选中状态 nd.Checked = False Next If e.node.ParentNode IsNot Nothing Then \'去掉父节点选中状态 e.node.ParentNode.Checked = False End If For Each nd As WinForm.TreeNode In trv.AllNodes If nd.Checked Then If flt > "" Then flt = flt & " Or " \'注意用or而不是And End If If nd.Level = 0 Then \'注意下面的条件都要用括号括起来 flt = flt & "( 方案名称 = \'" & nd.Text & "\')" Else flt = flt & "( 方案名称 = \'" & nd.ParentNode.Text & "\' And 鱼群名称 = \'" & nd.Text & "\')" End If End If Next
\'DataTables("汇总分析_VIP回访记录").loadFilter = flt \'DataTables("汇总分析_VIP回访记录").load
Dim sql As String sql = "Select 消费日期 As 日期, 归属门店, SUM(实销金额) As VIP销售额, COUNT(DISTINCT VIP卡号) As VIP销售笔数 FROM {VIP消费信息} where VIP电话 in (select VIP电话 from VIP回访记录 where 方案名称 = ) GROUP BY 消费日期, 归属门店 " Tables("汇总分析_到店人数统计").Fill( sql,"VIP数据",True)
|
-- 作者:Bin
-- 发布时间:2014/7/9 10:34:00
--
你的问题是什么?
|
-- 作者:fubblyc
-- 发布时间:2014/7/9 10:38:00
-- 通过目录树的条件来做子查询
谢谢Bin老师。
Dim sql As String sql = "Select 消费日期 As 日期, 归属门店, SUM(实销金额) As VIP销售额, COUNT(DISTINCT VIP卡号) As VIP销售笔数 FROM {VIP消费信息} where VIP电话 in (select VIP电话 from VIP回访记录 where 方案名称 = ) 【这里想要实现的是查询记录的条件是flt,但是子查询只能是具体的字段条件,而不能像loadfilter = flt 这样写。】GROUP BY 消费日期, 归属门店 " Tables("汇总分析_到店人数统计").Fill( sql,"VIP数据",True)
[此贴子已经被作者于2014-7-9 10:39:09编辑过]
|
-- 作者:有点甜
-- 发布时间:2014/7/9 10:38:00
--
Dim trv As WinForm.TreeView = e.Sender Dim flt As String Dim filter As String = "1=2" For Each nd As WinForm.TreeNode In e.node.Nodes \'清除子节点选中状态 nd.Checked = False Next If e.node.ParentNode IsNot Nothing Then \'去掉父节点选中状态 e.node.ParentNode.Checked = False End If For Each nd As WinForm.TreeNode In trv.AllNodes If nd.Checked Then If flt > "" Then flt = flt & " Or " \'注意用or而不是And End If If nd.Level = 0 Then \'注意下面的条件都要用括号括起来 flt = flt & "( 方案名称 = \'" & nd.Text & "\')" filter &= " or 方案名称 = \'" & nd.Text & "\'" Else flt = flt & "( 方案名称 = \'" & nd.ParentNode.Text & "\' And 鱼群名称 = \'" & nd.Text & "\')" filter &= " or 方案名称 = \'" & nd.ParentNode.Text & "\'" End If End If Next
\'DataTables("汇总分析_VIP回访记录").loadFilter = flt \'DataTables("汇总分析_VIP回访记录").load
Dim sql As String sql = "Select 消费日期 As 日期, 归属门店, SUM(实销金额) As VIP销售额, COUNT(DISTINCT VIP卡号) As VIP销售笔数 FROM {VIP消费信息} where VIP电话 in (select VIP电话 from VIP回访记录 where " & filter & " ) GROUP BY 消费日期, 归属门店 " Tables("汇总分析_到店人数统计").Fill( sql,"VIP数据",True)
|
-- 作者:有点甜
-- 发布时间:2014/7/9 10:40:00
--
4楼是复杂的,这个是简单的
Dim trv As WinForm.TreeView = e.Sender Dim flt As String = "1=2" For Each nd As WinForm.TreeNode In e.node.Nodes \'清除子节点选中状态 nd.Checked = False Next If e.node.ParentNode IsNot Nothing Then \'去掉父节点选中状态 e.node.ParentNode.Checked = False End If For Each nd As WinForm.TreeNode In trv.AllNodes If nd.Checked Then If nd.Level = 0 Then \'注意下面的条件都要用括号括起来 flt = flt & " or ( 方案名称 = \'" & nd.Text & "\')" Else flt = flt & " or ( 方案名称 = \'" & nd.ParentNode.Text & "\' And 鱼群名称 = \'" & nd.Text & "\')" End If End If Next
\'DataTables("汇总分析_VIP回访记录").loadFilter = flt \'DataTables("汇总分析_VIP回访记录").load
Dim sql As String sql = "Select 消费日期 As 日期, 归属门店, SUM(实销金额) As VIP销售额, COUNT(DISTINCT VIP卡号) As VIP销售笔数 FROM {VIP消费信息} where VIP电话 in (select VIP电话 from VIP回访记录 where " & flt & " ) GROUP BY 消费日期, 归属门店 " Tables("汇总分析_到店人数统计").Fill( sql,"VIP数据",True)
|
-- 作者:fubblyc
-- 发布时间:2014/7/9 10:45:00
--
对,哎,居然可以这样子,我怎么没想到呢!
谢谢甜老师!!
[此贴子已经被作者于2014-7-9 10:53:40编辑过]
|