首页 新闻 会员 周边

写sql遇见查询比赛胜负的场数

0
悬赏园豆:20 [已解决问题] 解决于 2013-06-06 13:52

表结构如下:

 日期         赛况    

2012-12-11        胜    

2012-12-11        负    

2012-12-11        负    

2012-12-12        负    

2012-12-12        胜    

2012-12-13        胜    

2012-12-14        胜

要求:

 日期                 胜  负    

2012-12-11       1   2    

2012-12-12       1   1

2012-12-13       1   0

2012-12-14       1   0

请问怎么写sql语句?

< >
分享
最佳答案
0

就是简单的行列转换

SELECT
    日期
    ,SUM(胜) AS 胜
    ,SUM(负) ASFROM(
    SELECT
        日期
        ,CASE 赛况 WHEN ‘胜’ THEN 1 ELSE 0 END AS 胜
        ,CASE 赛况 WHEN ‘负’ THEN 1 ELSE 0 END ASFROM XXTABLE
) A
GROUP BY 日期

 

收获园豆:8
TiestoRay | 小虾三级 |园豆:687 | 2013-05-31 07:49
其他回答(3)
0

http://stackoverflow.com/questions/564997/join-two-sql-queries

天方 | 园豆:5407 (大侠五级) | 2013-05-31 00:25
0
SELECT 日期, SUM(胜) AS 胜, SUM(负) ASFROM
(
SELECT 日期, 1 AS 胜, 0 ASFROM Table_赛况 WHERE 赛况=''
UNION
SELECT 日期, 0 AS 胜, 1 ASFROM Table_赛况 WHERE 赛况=''
)
GROUP BY 日期
收获园豆:8
FryFish | 园豆:210 (菜鸟二级) | 2013-05-31 10:15
0

SELECT
    日期
    ,SUM(胜) AS 胜
    ,SUM(负) AS 负
FROM(
    SELECT
        日期
        ,CASE 赛况 WHEN '胜' THEN 1 ELSE 0 END AS 胜
        ,CASE 赛况 WHEN '负' THEN 1 ELSE 0 END AS 负
    FROM dbo.Match
) A
GROUP BY 日期

收获园豆:4
休小晓 | 园豆:21 (初学一级) | 2013-05-31 11:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册