解决了类似树型结构的查询语句

原创 2006年06月26日 01:43:00

     晚上被一个类似树型结构的查询语句困扰  终于解决了。不过好象查询的效率不是很高

问题可以被抽象为求每个 hetongid 中的B的和   、D的和

 /*************************设计的测试表*****************************/

create table t( hetongid char(20),  A int, B int ,D int )

insert into t values ( '公司1',1 ,100 ,1 )
insert into t values ( '公司1',1 ,100 ,2 )
insert into t values ( '公司1',1 ,100 ,22 )
insert into t values ( '公司1',1 ,100 ,23 )

insert into t values ( '公司1',2 ,100 ,5 )
insert into t values ( '公司1',2 ,100 ,6 )

insert into t values ( '公司1',3 ,200 ,3 )
insert into t values ( '公司1',3 ,200 ,4 )

insert into t values ( '公司2',4 ,300 ,1 )
insert into t values ( '公司2',4 ,300 ,2 )
insert into t values ( '公司2',4 ,300 ,22 )
insert into t values ( '公司2',4 ,300 ,23 )


insert into t values ( '公司2',5 ,200 ,3 )
insert into t values ( '公司2',5 ,200 ,4 )

insert into t values ( '公司2',6 ,100 ,5 )
insert into t values ( '公司2',6 ,100 ,6 )


select * from t

/************************表的格式***********************/

hetongid            A         B    D

公司1                1       100    1
公司1                1       100    2
公司1                1      100      22
公司1                1      100     23
公司1                2       100    5
公司1                2      100     6
公司1                3      200     3
公司1                3      200     4
公司2                4      300     1
公司2                4      300    2
公司2                4      300    22
公司2                4      300    23
公司2                5      200    3
公司2                5     200     4
公司2                6     100     5
公司2                6      100    6

 

/********************错误的语句*********************************/
select * from t
select   hetongid,  sum( distinct (B)),SUM(D)
from  t
GROUP BY hetongid,A


/***************正确的语句*************/

select * from t

select   a.hetongid,  sum(a.b),SUM(a.d)
from  ( select hetongid,  sum( distinct (B)) as b,SUM(D) as d 
        from t
        group by hetongid,  A
      ) a                                  
GROUP BY hetongid

 

/*****************结果*********************/

公司1                400        66 

公司2               600           66 

 

                如果有更好的办法  请指点指点。

数据结构中常用树型结构简介

B树、B-树、B+树、B*树、红黑树rbtree 二叉排序树、trie树Double Array 字典查找树     B树        即二叉搜索树:        1.所有非叶子结点...
  • working_brain
  • working_brain
  • 2014年07月25日 17:23
  • 1459

简单的二级树型结构

简单的二级树Set Conn = Server.CreateObject("ADODB.Connection")Sql = "Provider=Microsoft.Jet.OLEDB.4.0;Data...
  • baby97
  • baby97
  • 2006年09月21日 17:03
  • 863

[数据库]树结构的数据库设计

程序设计过程中,我们常常用树形结构来表征某些数据的关联关系,如企业上下级部门、栏目结构、商品分类等等,通常而言,这些树状结构需要借助于数据库完成持久化。然而目前的各种基于关系的数据库,都是以二维表的形...
  • SunnyYoona
  • SunnyYoona
  • 2014年06月02日 23:37
  • 1627

面向对象三大特征和解决的问题

一:什么是“对象” 在计算机的世界里,对象(Object)就是进行研究的任何事物。小到螺丝钉,大道飞机大炮,都可以被看成是一个对象,每一个对象都有各自的属性和操作。以“狗”为例:颜色、体重等都是狗这...
  • dsa63
  • dsa63
  • 2014年02月04日 14:32
  • 1050

三大框架的出现都是为了解决什么问题

Struts、Hibernate和Spring是我们Java开发中的常用关键,他们分别针对不同的应用场景给出最合适的解决方案。但你是否知道,这些知名框架最初是怎样产生的? 我们知道,传统的Java ...
  • a236209186
  • a236209186
  • 2016年04月26日 15:22
  • 1815

实现Comparable接口对树形结构数据进行排序

背景: 数据库中无序的数据要按树形结构出输出, 如图所示:   每一个记录 对应 一条数据库的 数据, 需求来了,那么怎么实现呢,首先最简单的是直接从数据库 按顺序 查出,然后依次打印, 简单点说...
  • wufengui1315
  • wufengui1315
  • 2015年02月05日 22:44
  • 1000

树型结构

*&---------------------------------------------------------------------**& Modulpool         SAPSIMP...
  • chfeijj
  • chfeijj
  • 2009年03月18日 16:20
  • 923

spring学习笔记①spring出现为了解决什么问题?

Spring是一个开源的控制反转(Inversionof Control ,IoC)和面向切面(AOP)的容器框架。包含了很多优秀的设计模式,聚解耦合的分层机制。   spring是干嘛的?spr...
  • QueenJade
  • QueenJade
  • 2011年09月09日 10:37
  • 2265

【浅谈递归(二)】常见递归问题的分析与解答

一、经典递归问题1、汉诺塔问题题目描述:古代有一个梵塔,塔内有三个座 A、B、C,A 座上有 64 个盘子,盘子大小不等,大的在下,小的在上。有一个和尚想把这 64 个盘子从 A 座移到 B 座,但每...
  • yuanmxiang
  • yuanmxiang
  • 2016年10月20日 11:13
  • 518

JSP实现树型组织架构(5)--删除部门页面orgDelete.jsp

//orgDelete.jsp 删除部门页面,由orgManage.jsp 而来request.setCharacterEncoding("big5");String depName=request....
  • sylmoon
  • sylmoon
  • 2005年04月05日 09:42
  • 1027
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:解决了类似树型结构的查询语句
举报原因:
原因补充:

(最多只允许输入30个字)