select convert(char(7),日期,120) as convert(char(7),日期,120),(select top 1 期初 from 基表 where convert(char(7),日期,120)=convert(char(7),a.日期,120) order by 日期) as 期初,sum(借发生) as 借发生,sum(贷发生) as 贷发生,(select top 1 期末 from 基表 where convert(char(7),日期,120)=convert(char(7),a.日期,120) order by 日期 desc ) as 期末
from 基表
group by convert(char(7),日期,120)

解决方案 »

  1.   

    CREATE TABLE T (日期1 datetime, 期初 int, 借发生 int, 贷发生 int, 期末 int, 日期2 varchar(20))
    Insert T (日期1, 期初, 借发生, 期末) Select 日期, 期初, 借发生, 期末 From 基表
    Update T Set 日期2 = datepart(yyyy, 日期1)+'-'+datepart(mm, 日期1)
    update T Set 期初=Min(期初), 日期2 Group by 日期2
    update T Set 期初=Max(期末), 日期2 Group by 日期2
    Select 期初, sum(借发生) as 借发生, sum(贷发生) as 贷发生, 期末, 日期2
    group by 期初, 期末, 日期2
      

  2.   

    CREATE TABLE T (日期1 datetime, 期初 int, 借发生 int, 贷发生 int, 期末 int, 日期2 varchar(20))
    Insert T (日期1, 期初, 借发生, 期末) Select 日期, 期初, 借发生, 期末 From 基表
    Update T Set 日期2 = datepart(yyyy, 日期1)+'-'+datepart(mm, 日期1)
    update T Set 期初=Min(期初), 日期2 Group by 日期2
    update T Set 期初=Max(期末), 日期2 Group by 日期2
    Select 期初, sum(借发生) as 借发生, sum(贷发生) as 贷发生, 期末, 日期2
    From T group by 期初, 期末, 日期2
      

  3.   

    create table aa (rq varchar(10),qc int,jfs int,dfs int,qm int )
    insert aa values('2004-07-20',20,30,40,50)
    insert aa values('2004-07-21',50,50,20,40)
    insert aa values('2004-08-20',20,50,20,40)select 日期=left(rq,7),期初=sum(qc),借发生=sum(jfs),贷发生=sum(dfs),期末=max(qm) from aa    
    group by left(rq,7)drop table aa-- 结果
    日期         期初          借发生         贷发生         期末          
    ---------- ----------- ----------- ----------- ----------- 
    2004-07    70          80          60          50
    2004-08    20          50          20          40
      

  4.   

    zhangzs8896(小二)
    你要看清楚楼主的不是全汇总的,有的取最小有的取最大。
      

  5.   

    错了,改成这样
    create table aaa (id int,rq varchar(10),qc int,jfs int,dfs int,qm int )
    insert aaa values(1,'2004-06-01',1000,5000,10000,6000)
    insert aaa values(2,'2004-06-02',6000,6000,6000,6000)
    insert aaa values(3,'2004-07-01',6000,6000,6000,6000)
    insert aaa values(4,'2004-07-06',6000,1000,5000,10000)select 日期=left(rq,7),期初=min(qc),借发生=sum(jfs),贷发生=sum(dfs),期末=max(qm) from aaa    
    group by left(rq,7)drop table aaa
      

  6.   

    select left(日期,7) as 日期,sum(期初) as 期初,sum(借发生) as 借发生,sum(贷发生) as 贷发生,sum(期末) as 期末 from 其表 group by left(日期,7)
      

  7.   

    老是看错,最后的:
    create table aaa (id int,rq varchar(10),qc int,jfs int,dfs int,qm int )
    insert aaa values(1,'2004-06-01',1000,5000,10000,6000)
    insert aaa values(2,'2004-06-02',6000,6000,6000,6000)
    insert aaa values(3,'2004-07-01',6000,6000,6000,6000)
    insert aaa values(4,'2004-07-06',6000,1000,5000,10000)select id=identity(int,1,1),日期=left(rq,7),期初=min(qc),借发生=sum(jfs),贷发生=sum(dfs),期末=max(qm) 
    into #tb
    from aaa    
    group by left(rq,7)
    select * from #tbdrop table aaa,#tb--结果:
    id          日期         期初          借发生         贷发生         期末          
    ----------- ---------- ----------- ----------- ----------- ----------- 
    1           2004-06    1000        11000       16000       6000
    2           2004-07    6000        7000        11000       10000
      

  8.   

    Select left(日期,7) as 日期,min(期初) as 期初,sum(借发生) as 借发生,sum(贷发生) as 贷发生,max(期末) as 期末 from 其表 group by left(日期,7)
      

  9.   

    你的好像也不太对吧,a 没有定义吧。 to tx1icenhet
      

  10.   

    看錯啦,
    sum(期末) as 期末 要改成 max(期末) as 期末
      

  11.   

    tx1icenhe(冒牌马可 V0.1) 
    不是第一条和最后一条,应该是最大最小。
      

  12.   

    to :tx1icenhe(冒牌马可 V0.1) 
    你的好像也不太对吧,会提示日期是无效的列。
      

  13.   

    最大最小??没有这个逻辑的!!!拷贝错了select convert(char(7),日期,120) as 日期,
    (select top 1 期初 from 基表 where convert(char(7),日期,120)=convert(char(7),a.日期,120) order by 日期) as 期初,
    sum(借发生) as 借发生,
    sum(贷发生) as 贷发生,
    (select top 1 期末 from 基表 where convert(char(7),日期,120)=convert(char(7),a.日期,120) order by 日期 desc ) as 期末
    from 基表
    group by convert(char(7),日期,120)
      

  14.   

    --如果按冒牌的意思,楼主这样,冒牌少了a了,呵呵
    select convert(char(7),日期,120) as 日期,
    (select top 1 期初 from 基表 where convert(char(7),日期,120)=convert(char(7),a.日期,120) order by 日期) as 期初,
    sum(借发生) as 借发生,
    sum(贷发生) as 贷发生,
    (select top 1 期末 from 基表 where convert(char(7),日期,120)=convert(char(7),a.日期,120) order by 日期 desc ) as 期末
    from 基表 a ----这里定义a
    group by convert(char(7),日期,120)