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

原创 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 

 

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

相关文章推荐

数据库查询出的扁形数据转树型结构数据

扁形数据结构 [ {id:1,pid:2,text:你好}, {id:2,pid:3,text:你好} ] 转换为树型json结构 ...

SQL查询语句的基本结构

SQL查询基本结构由三个子语句构成: select     from   where 以instructor关系为例:  创建 关系并插入数据 mysql> insert into instruc...

sqlserver2005表结构查询语句

获取SqlServer2005表结构(字段,主键,外键,递增,描述)   1.获取表的基本字段属性 --获取SqlServer中表结构 SELECT syscolumns.name,syst...

oracle结构化查询语句

select * from employees START WITH……CONNECT BY PRIOR…… select * from employees SELECT     last...

DB2 数据库表 表结构 查询语句

①DB2取得所有非系统表: SELECT RTRIM(TABSCHEMA) AS CONTNAME, RTRIM(TABNAME) AS NAME, RTRIM(...

mongodb条件查询实现结构化查询语句SQL

mongodb条件查询 ● 条件操作符 "$lt"===================>"" "$gte"==================>">=" "$ne"==============...

SQL基本结构化查询语句

本博文主要介绍MySQL中基本的结构化查询语句。

左右编号树型结构

以下面一个实际的计算机目录结构为例,研究左右值编码存储树形结构的算法 计算机   |----c:   |      |----program     |      |----users ...

【PB】树型结构的遍历

树型结构遍历 作者:郭宝利  来源:原创  日期:2004.06.27  树型结构的遍历通常使用递归程序来实现,所以本节给出一个按照内容查找,对树型结构进行遍历,如...

整理easyui tree 树型结构创建过程

1、视图中在需要树型结构的地方添加 2、添加easyuitree树属性和方法 $('#menuTree').tree({ url: '/Fr...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:解决了类似树型结构的查询语句
举报原因:
原因补充:

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