Foxtable(狐表)用户栏目专家坐堂 → 通过目录树的条件来做子查询


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

主题:通过目录树的条件来做子查询

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
通过目录树的条件来做子查询  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/7/9 10:34:00 [只看该作者]

你的问题是什么?

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
通过目录树的条件来做子查询  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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)


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2014/7/9 10:45:00 [只看该作者]

对,哎,居然可以这样子,我怎么没想到呢!

谢谢甜老师!!

[此贴子已经被作者于2014-7-9 10:53:40编辑过]

 回到顶部