只有一个表
create table FS
(
Id int primary key identity(1,1),
Dates date not null,
fs char(2) not null,
)
insert into FS values('2011-05-01','胜')
insert into FS values('2011-05-02','胜')
insert into FS values('2011-05-01','负')
insert into FS values('2011-05-02','胜')
insert into FS values('2011-05-01','负')怎样用sql语句查询出按日期分组胜负数各是多少啊。不知道给位看的明白不,我描述的这个。大家帮帮忙啦。

解决方案 »

  1.   


    create table FS
    (
    Id int primary key identity(1,1),
    Dates datetime not null,
    fs char(2) not null,
    )
    insert into FS values('2011-05-01','胜')
    insert into FS values('2011-05-02','胜')
    insert into FS values('2011-05-01','负')
    insert into FS values('2011-05-02','胜')
    insert into FS values('2011-05-01','负')SELECT Dates,
    sum(CASE WHEN fs='胜' THEN 1 ELSE 0 END) AS 胜的数量, 
    sum(CASE WHEN fs='负' THEN 1 ELSE 0 END) AS 负的数量 
    FROM FS GROUP BY Dates
    /*
    Dates                   胜的数量        负的数量
    ----------------------- ----------- -----------
    2011-05-01 00:00:00.000 1           2
    2011-05-02 00:00:00.000 2           0
    */
      

  2.   

    create table FS
    (
    Id int primary key identity(1,1),
    Dates date not null,
    fs char(2) not null,
    )
    insert into FS values('2011-05-01','胜')
    insert into FS values('2011-05-02','胜')
    insert into FS values('2011-05-01','负')
    insert into FS values('2011-05-02','胜')
    insert into FS values('2011-05-01','负')
    select dates,FS,COUNT(fs) counts from FS group by Dates,fs 
    /*
    dates FS counts
    2011-05-01 负 2
    2011-05-01 胜 1
    2011-05-02 胜 2
    */
      

  3.   

    谢谢了,就是这个效果,原来我把这个地方写错了then 1。应该写一样的。没理解透彻。