还有如能帮我阐述一下group by 的用法与限制之类的问题,那会更好!
谢谢!!!

解决方案 »

  1.   

    GROUP BY 条件子句  
    依据指定的字段,将具有相同数值的记录合并成一条。SELECT fieldlist
    FROM table
    WHERE criteria
    GROUP BY groupfieldlist 
    fieldlist
    欲读取的字段名称。(可与ALL,DISTINCT,DISTINCTROW,或TOP合并使用) 
    table
    被查询的表格名称。 
    groupfieldlist
    分组记录的字段名称,到多10个字段,而这些字段的顺序决定最高到最低的分组层次。 
    例如:
    SELECT 姓名,Count(姓名)AS 职员姓名
    FROM 职员表格
    WHERE 部门名称='业务部'
    GROUP BY 姓名 
      

  2.   

    up
    参与分组的col可以有多个
      

  3.   

    benxie(峰之枫)
    能举个(可与ALL,DISTINCT,DISTINCTROW,或TOP合并使用)具体的例子吗?
    能详细点吗?
      

  4.   

    我三个表的结构如下:
    tplan_sp:
    create table tplan_sp(ITEM_ID        VARCHAR2(16) not null,/*项目编号*/
    UNIT_ID        NUMBER(4) not null,/*负责单位*/
    ITEM_NAME      VARCHAR2(256) not null,/*项目名称*/
    CONTENT        VARCHAR2(1024),/*研究内容*/
    PLAN_END    VARCHAR2(24),/*结束时间*/
    PLAN_FUND      NUMBER(20,4),/*计划总资金*/
    ht_id          varchar2(20),/*合同号*/
    money          number(8,1),/*合同总金额*/
    ITEM_STATE_ID  NUMBER(4) not null,/*进度情况*/
    MEMO        VARCHAR2(256),/*备注*/
    file_link   varchar2(60),/*合同文档*/
    PRINCIPAL   VARCHAR2(128),/*项目负责人*/
    PLAN_BEGIN  VARCHAR2(24),/*开始时间*/
    SPECIALTY_ID   NUMBER(4),/*专业类别*/
    xm_sort     varchar2(10),/*类目*/
    STATE       VARCHAR2(16),/*记录状态*/
    primary key(ITEM_ID));
    tab_year:
    create table tab_year
    (
    xm_number     varchar2(16),/*项目编号*/
    UNIT_ID       NUMBER (4) , /*负责单位*/
    xm_year       varchar(8),/*年度*/
    jh_money      number(8,1),/*年度计划资金*/
    ht_money      number(8,1),/*年度合同资金*/
    sy_money      number(8,1),/*年度实用资金*/
    primary key(xm_number,xm_year));
    tunit:
    create table tunit
    (
    UNIT_ID          NUMBER (4) not null,
    UNIT_NAME        VARCHAR2 (256) ,
    unit_short       varchar2(20) ,
    POSTCAL          NUMBER (8),
    TELPHONE         VARCHAR2 (32),
    fax              VARCHAR2 (32),
    address          VARCHAR2 (256),     
    STATE            VARCHAR2 (16),  
    primary key(unit_id)
    );
      

  5.   

    read oracle sql reference and take some practices
      

  6.   

    select a.xm_year,
           sum(a.jh_money),
           sum(a.ht_money),
           sum(a.sy_money),
           a.xm_number,
           b.money,
           b.PLAN_FUND,
           b.ITEM_NAME,
           c.UNIT_NAME 
    from   tab_year a,
           tplan_sp b,
           tunit c 
    where  a.xm_number=b.ITEM_ID 
    and    a.UNIT_ID=c.UNIT_ID 
    group by 
           a.xm_year ,
           a.xm_number ,
           b.money,
           b.PLAN_FUND,
           b.ITEM_NAME,
           c.UNIT_NAME 
    order by 
           a.xm_number asc,
           a.xm_year desc
      

  7.   

    那就把除单位,年度两个因素以外的非合计列从SELECT 和GROUP BY 中去掉
      

  8.   

    zhzhs007(北湖居士)
    为什么GROUP BY中包括了b.money,b.PLAN_FUND?