数据库中表结构是这样的  店铺   时间   人数create table  tt

dbno  varchar(50),
time  datetime,
up    int
)给点数据 
insert into tt values('一号店',2010-10-10,123)
insert into tt values('一号店',2010-10-11,234)
insert into tt values('一号店',2010-10-12,245)insert into tt values('二号店',2010-10-10,765)
insert into tt values('二号店',2010-10-11,543)
insert into tt values('二号店',2010-10-12,257)insert into tt values('一号店',2009-10-10,864)
insert into tt values('一号店',2009-10-11,124)
insert into tt values('一号店',2009-10-12,184)insert into tt values('二号店',2009-10-10,356)
insert into tt values('二号店',2009-10-11,845)
insert into tt values('二号店',2009-10-12,274)
给两个时间段让对 这两个时间段的 人数进行详细的比较 显示格式是这样的       店铺      时间1      人数1    时间2      人数2
                      一号店    2010-10-10   123    2009-10-10   234
                      一号店    2010-10-11   123    2009-10-11   234
                      二号店    2010-10-10   234    2009-10-10   345
                      二号店    2010-10-11   234    2009-10-11   345
                      三号店    2010-10-10   543    2009-10-10   345
                      三号店    2010-10-11   543    2009-10-11   345请大侠 帮忙  SQL语句该如何写 ,注意是同月同日不同年  且 要求 格式是上面的格式。

解决方案 »

  1.   

    显示格式是这样的 店铺 时间1 人数1 时间2 人数2
      一号店 2010-10-10 123 2009-10-10 234
      一号店 2010-10-11 123 2009-10-11 234
      二号店 2010-10-10 234 2009-10-10 345
      二号店 2010-10-11 234 2009-10-11 345
      三号店 2010-10-10 543 2009-10-10 345
      三号店 2010-10-11 543 2009-10-11 345
    select dbno,【时间一】=a.time    【人数1】=a.up   【时间二】=  b.time  【人数2】=b.up    from tt  a inner join tt b on a.time>b.time and right(convert(varchar(10),a.time,120),6)=right(convert(varchar(10),b.time,120),6)
      

  2.   

    select dbno,【时间一】=a.time    【人数1】=a.up   【时间二】=  b.time  【人数2】=b.up 
    from tt  a 
    inner join tt b 
    on a.time>b.time 
    and 
    right(convert(varchar(10),a.time,120),6)=right(convert(varchar(10),b.time,120),6)
      

  3.   


    create table tt
    (
    dbno varchar(50),
    time datetime,
    up int
    )
    insert into tt values('一号店','2010-10-10',123)
    insert into tt values('一号店','2010-10-11',234)
    insert into tt values('一号店','2010-10-12',245)
    insert into tt values('二号店','2010-10-10',765)
    insert into tt values('二号店','2010-10-11',543)
    insert into tt values('二号店','2010-10-12',257)
    insert into tt values('一号店','2009-10-10',864)
    insert into tt values('一号店','2009-10-11',124)
    insert into tt values('一号店','2009-10-12',184)
    insert into tt values('二号店','2009-10-10',356)
    insert into tt values('二号店','2009-10-11',845)
    insert into tt values('二号店','2009-10-12',274)
    select * from ttselect * from tt a inner join tt b on a.dbno=b.dbno and a.time=dateadd(year,1,b.time)
      

  4.   

    初学SQL,办法有点笨,坐等高手。select distinct t1.dbno,t1.time,t1.up,t2.time,t2.up from tt t1 ,tt t2 where t1.dbno =t2.dbno
    and substring(convert(nvarchar(20),t1.time),1,5)=substring(convert(nvarchar(20),t2.time),1,5)
    and t1.time<t2.time
    order by t1.dbno desc