设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2117|回复: 8
打印 上一主题 下一主题

[查询] 找出某节点下属的所有节点

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2009-9-17 22:28:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一个表有2个字段: CategoryID 和 ParentID
CategoryID:记录节点的ID
ParentID:  记录节点的ID对应的父节点ID

要求:用一句SQL语句,列出字段 CategoryID 值为 003 的下属所有节点。
目的:用于指定子窗体A的数据源

哪位朋友帮帮忙,多谢了。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-9-17 23:05:27 | 只看该作者
select * from 表 where CategoryID ='003'

点击这里给我发消息

3#
 楼主| 发表于 2009-9-17 23:11:26 | 只看该作者
003 的下属所有节点呀

点击这里给我发消息

4#
 楼主| 发表于 2009-9-17 23:15:36 | 只看该作者
用下面的函数能实现,但我想用一句SQL语句,不用中间表,实现以下函数的功能。
Public Sub All_SubID(P_ID As Integer)
    Dim Str1 As String
    Str1 = "SELECT CategoryID INTO LSB FROM GoodsCategory WHERE ParentID=" + CStr(PID)
    DoCmd.SetWarnings False
    DoCmd.RunSQL Str1
    Dim W1 As Boolean
    W1 = True
    While W1
        Str1 = "SELECT CategoryID INTO LSB1 FROM GoodsCategory WHERE ParentID IN (SELECT CategoryID FROM LSB) AND CategoryID NOT IN (SELECT CategoryID FROM LSB)"
        DoCmd.RunSQL Str1
        If DCount("CategoryID", "LSB1") > 0 Then
            Str1 = "INSERT INTO LSB (CategoryID) SELECT CategoryID FROM LSB1"
            DoCmd.RunSQL Str1
        Else
            W1 = False
        End If
    Wend
End Sub
5#
发表于 2009-9-17 23:28:50 | 只看该作者

点击这里给我发消息

6#
 楼主| 发表于 2009-9-17 23:54:45 | 只看该作者
多谢版主,不过,我的问题还是没有解决。
7#
发表于 2009-9-18 09:27:19 | 只看该作者
搞不清你的要求
8#
发表于 2009-9-21 19:59:47 | 只看该作者
把你的表数据贴出来
9#
发表于 2009-9-21 20:52:17 | 只看该作者
我以前写过一个获取节点的所有子节点,不过是在树中实现的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-19 12:22 , Processed in 0.098108 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表