设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[宏/菜单/工具栏] 关于Tree的类别统计的问题 瞅瞅复杂点的SQL应用

[复制链接]
跳转到指定楼层
1#
发表于 2003-11-6 17:31:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题:
如何由[tbl单位统计]自动汇总生成[tbl类别统计]

还是关于使用树结构的相关查询统计
上次你发给我的范例我学到很多,但是还不能活学活用
谢谢指教[em11]
参看附件


[此贴子已经被作者于2003-11-6 16:25:59编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2003-11-6 22:53:00 | 只看该作者
你的要求是將每級的資料進行統計....
我做了一下,一個查詢做不出來
要做6個,太多了,不好意思提出來,現只講一下做法...
1.1-4個查詢分別對應一級展開,二級展開,三級展開,四級展開
這幾個查詢都只有兩個字段,Name,類別
一級表做一個自身連接,二級表做兩個自連接,以此類推...
一級選主表的name與自連接表的類型,二級選主表的name,第一個自連接的name(但不顯示),第二個自連接的類型(做群組),以此類推...

2.用聯合查詢將1-4聯合起來...

3.再用這個聯合查詢做交叉查詢...
3#
 楼主| 发表于 2003-11-6 23:01:00 | 只看该作者
兔兔很努力的想把这个弄明白
ADAM能不能把查询上传上来
这儿我的编程进度卡住啦
4#
发表于 2003-11-6 23:55:00 | 只看该作者
兔兔你非要讓我出丑,是不是....
呵呵...

1.代碼:
test1:
SELECT tbl单位统计.name AS a, tbl单位统计.name AS b
FROM tbl单位统计
GROUP BY tbl单位统计.name, tbl单位统计.name;

test2:
SELECT tbl单位统计.name AS a, tbl单位统计_1.name AS b
FROM tbl单位统计 LEFT JOIN tbl单位统计 AS tbl单位统计_1 ON tbl单位统计.id = tbl单位统计_1.idparent
GROUP BY tbl单位统计.name, tbl单位统计_1.name;

test3:
SELECT tbl单位统计.name AS a, tbl单位统计_2.name AS b
FROM (tbl单位统计 LEFT JOIN tbl单位统计 AS tbl单位统计_1 ON tbl单位统计.id = tbl单位统计_1.idparent) LEFT JOIN tbl单位统计 AS tbl单位统计_2 ON tbl单位统计_1.id = tbl单位统计_2.idparent
GROUP BY tbl单位统计.name, tbl单位统计_2.name;

test4:
SELECT tbl单位统计.name AS a, tbl单位统计_3.name AS b
FROM ((tbl单位统计 LEFT JOIN tbl单位统计 AS tbl单位统计_1 ON tbl单位统计.id = tbl单位统计_1.idparent) LEFT JOIN tbl单位统计 AS tbl单位统计_2 ON tbl单位统计_1.id = tbl单位统计_2.idparent) LEFT JOIN tbl单位统计 AS tbl单位统计_3 ON tbl单位统计_2.id = tbl单位统计_3.idparent
GROUP BY tbl单位统计.name, tbl单位统计_3.name;

test5:
select a,b from test1
union
select a,b from test2
union
select a,b from test3
UNION select a,b from test4;

test6:
TRANSFORM Count(tbl单位统计.类别) AS c
SELECT test5.a
FROM (test5 LEFT JOIN tbl单位统计 ON test5.b = tbl单位统计.name) LEFT JOIN tblid类别 ON tbl单位统计.类别 = tblid类别.类别id
WHERE (((tblid类别.类别) Is Not Null))
GROUP BY test5.a
PIVOT tblid类别.类别;

2.test6就是你想要的東西了..

3.其實原理很簡單的...
5#
 楼主| 发表于 2003-11-7 00:12:00 | 只看该作者
拜谢ADAM啊
只要功能能实现,兔兔已经谢天谢地啦,
而且我觉得你用 join 简直 出神入化,这儿多写几个查询,VBA里面可就省事多啦,直接调用一个追加查询就完啦
以前兔兔对于sql的应用仅仅停留在 select * from tbl where id=a 这种 层面上
这几次让兔兔对sql又大发感慨,原来自己不懂的还是很多
这些技巧有种茅塞顿开的感觉
ADAM关于sql这方面有没有好的参考书,推荐一下
6#
发表于 2003-11-7 00:15:00 | 只看该作者
access 911里有一本
sql 21天通
我也在看
...
其實我用sql不是看書來的...
是憑感覺做的....
蒙對的....
我可不是"出神入化".....
呵呵.........
7#
 楼主| 发表于 2003-11-7 02:29:00 | 只看该作者

呵呵,搞定



ADAM写的查询真的是用得好爽哦
兔兔照葫芦画瓢,已经把自己的查询整出来啦
这里把例子的查询补上,有兴趣的可以下载看看,运行test6
真的很经典的sql查询应用[em04][em04]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-1-8 19:37 , Processed in 0.117668 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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