SOS!!复杂的sql语句、诡异的需求

afengelf 2012-02-06 04:24:12
如下图:
表一:是一个统计表,ORGANIZATION_ID是单位的ID,COUNT是统计到的该单位的数据

表二:是单位表,ID是单位的ID,NAME是单位名称,parent是该单位的上级单位ID,ancestor是按该单位的父级的ID按顺序排列的

表三:是我希望得到的表。我希望用一句sql语句查询得到表三的结构的表,而且COUNT列的数据是该单位的COUNT加上它的下级单位的COUNT,也就是一个汇总的数据

获取某个单位及该单位的下级单位的sql语句:
比如获取ID为200020的:select * from t_organization where id=200020 or ancestor like '%200020%'

补充:
图片中我用红线表示的意思是:
比如表一中第二行的ORGANIZATION_ID是第一行的ORGANIZATION_ID的下级,所以表二中的第一行的COUNT就是表一中的那2行相加,也就是72+5=77

比如表一中第4、5行是第3行的下级,所以表二中的第3行就是表一中的第3、4、5行相加的,也就是9+3+2=14

图片:
...全文
132 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
真的诡异啊
wb3399168 2012-02-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wb3399168 的回复:]
由于我觉得你的表达真的比较混乱,而且,还有说错的地方!所以我也给一个不知道对或错的语句并不加注释

select ID ORGANIZATION_ID, sum(COUNT) COUNT
from 表一, 表二
where (ORGANIZATION_ID = ID or ORGANIZATION_ID = PARENT)
group by ID
[/Quote]
哦确实还真是错了
改一下
select ORGANIZATION_ID, sum(COUNT) COUNT
from 表一, 表二
where (ORGANIZATION_ID = ID or CHARINDEX(ORGANIZATION_ID,ANCESTOR)>0)
group by ORGANIZATION_ID
wb3399168 2012-02-06
  • 打赏
  • 举报
回复

由于我觉得你的表达真的比较混乱,而且,还有说错的地方!所以我也给一个不知道对或错的语句并不加注释

select ID ORGANIZATION_ID, sum(COUNT) COUNT
from 表一, 表二
where (ORGANIZATION_ID = ID or ORGANIZATION_ID = PARENT)
group by ID

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧