编写SQL语句,现在有数据,如果要生成下列结果, 该如何写sql语句?

编写SQL语句,现在有数据
2005-05-09 胜 2005-05-09 胜 2005-05-09 负
2005-05-09 负 2005-05-10 胜 2005-05-10 负
2005-05-10 负
如果要生成下列结果, 该如何写sql语句?
胜 负
2005-05-09 2 2
2005-05-10 1 2

select m.时间,m.胜场,n.败场
from (select 时间,count(*)as 胜场
from A
where 输赢='胜'
group by 时间)m,
(select 时间,count(*)as 败场
from A
where 输赢='败'
group by 时间)n
where m.时间=n.时间追问

具体的这样?
select 日期,
sum(case when 结果 = '胜' then 1 else 0 end) as 胜,
sum(case when 结果 = '负' then 1 else 0 end) as 负,
from table group by 日期

追答

sum是求和函数,不是计数函数,这里不能用sum,用sum算不出来。
你需要的是计算出胜场数和败场数,那么我们只需要用count就好了

追问

哦,谢谢,别人说那个结果是字段名要换掉?要怎么换?换成什么?

追答

select m.时间,m.胜场,n.败场
这个语句就是说 进行sql语句执行后,查询出来的字段名是
时间 胜场 败场 ps:这就是所谓的显示字段,你想改成你要的也行。直接改sql语句
9.1 2 2

追问

意思就是不改也行?
上面有人说那个“结果”要替换掉,替换成9.1?
9.1是什么意思? 2 2 是替换那个胜 胜?那下面那个负勒?

追答

额,我表示亚历山大
这个 9.1和 2都是我举得例子,具体查询出来的结果是什么,就得看你的数据啦

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-14
select 日期,
sum(case when 结果 = '胜' then 1 else 0 end) as 胜,
sum(case when 结果 = '负' then 1 else 0 end) as 负,
from table group by 日期追问

数据库不懂,能给我解释下你写的这个什么意思麽?
如:select 日期 这个日期啥意思?

追答

就是你的字段名啊
你那些2005-05-09不是有个字段名
'结果'这个也是字段名替换掉,
table 是你的表名
其他不用改

第2个回答  2011-11-14
这个得最好通过后台程序,将每条记录读取为字符串,截取前10个字符,与"2005-05-09 ",和"2005-05-10"比较,然后截取最后一个字符,并与"胜"、"负"比较,求得"2005-05-09"胜负出现次数,以及"2005-05-10"胜负出现次数。
第3个回答  2011-11-14
按时间分组 计算当日'胜'和'负'的个数
select 日期 ,count胜), count(负) from table group by 日期追问

能具体点麽?数据库我实在不懂,
要是用SQL语句把那结果写出来改怎么写?

追答

2005-05-09 胜 2005-05-09 胜 2005-05-09 负
2005-05-09 负 2005-05-10 胜 2005-05-10 负
2005-05-10 负
这些数据是在一张表里面吧?? 按照表的格式把数据列出来 我看看
我没你表的结构我不知道 我刚刚也是大概猜测的

追问

没有表格,这是个题目,数据里5月9日胜2负2 5月10日胜1负2
如果要用SQL语句该怎么写出来。
这方面实在不懂啊。

追答

那你先把这些数据存到数据库里面 再按照select 日期 ,count胜), count(负) from table group by 日期 查询就可以了 要么直接在数据库里面建一张你想要的结构表就行

第4个回答  2011-11-14
直接百度 行列转换

编写SQL语句,现在有数据,如果要生成下列结果, 该如何写sql语句?
select m.时间,m.胜场,n.败场 from (select 时间,count(*)as 胜场 from A where 输赢='胜'group by 时间)m,(select 时间,count(*)as 败场 from A where 输赢='败'group by 时间)n where m.时间=n.时间

SQL查询面试题与答案
每个数据库必须至少有一个日志文件,但可以不止一个。日志文件的推荐文件扩展名是 .ldf。 7.请用一个sql语句得出结果 从table1,table2中取出如table3所列格式数据,注意提供的数据及结果不准确,只是作为一个格式向大家请教。 如使用存储过程也可以。 table1 月份mon 部门dep 业绩yj --- 一月份 01 10 一月份 ...

SQL 建表?
但是,如果计算列由具有确定性的表达式定义,并且索引列中允许计算结果的数据类型,则可将该列用作索引中的键列,或用作 PRIMARY KEY 或 UNIQUE 约束的一部分。 例如,如果表中有整数列 a 和 b,那么计算列 a+b 上可建立索引,而计算列 a+DATEPART(dd, GETDATE()) 上则不能,因为该值将在后续调用时更改。计算...

SQL 语句 select sum(a) from table1 where b=3
如果 getMoreResults 返回 true,则需要再次调用 getResultSet 来检索下一个结果集。如上所述,如果 getResultSet 返回 null,则需要调用 getUpdateCount 来检查 null 是表示结果为更新计数还是表示没有其它结果。 当getMoreResults 返回 false 时,它表示该 SQL 语句返回一个更新计数或没有其它结果。因此需要调用方法 get...

求sql语句。得出表中两列相减的值
1、语句如下:select A, B, A-B as C from 表1 2、计算列:可以使用同一表中的其他列的表达式计算得来。表达式可以是非计算列的列名、常量、函数,也可以是用一个或多个运算符连接的上述元素的任意组合。表达式不能为子查询。语句中的A-B就是计算列,as C的意思是给这个计算列起个列名叫C。...

sql查询 更新语句怎么写
1、首先需要打开sql server 数据库。2、点击新建查询按钮,进入sql 执行界面。3、编写sql 更新语句,update tablename set name='更新' ,点击执行按钮。4、使用查询语句,检查是否更新成功,select * from tablename。5、上面的语句是对数据库进行批量更新,如果更新指定的信息可以在update 语句后面加...

SQL 中UPDATE用法
Update是一个数据库SQL语法用语,用途是更新表中原有数据,单独使用时使用where匹配字段。语法为:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 例如:Update table_name Set column_name = new_value Where column_name = some_value ...

VFP SQL语句求解
包含NAME LongTableName 可以为该表命一个最多可包括 128 个字符的并且可以在数据库中代替短名字的长名。 如果没有包括 INTO 子句, 查询结果显示在一个“浏览”窗口中。也可以用 TO FILE 子句来定向查询结果到打印机或一个文件。 TO FILE FileName [ADDITIVE] | TO PRINTER [PROMPT] | TO SCREEN 定向查询...

sql 多条件筛选语句怎么写?
金融');insert into test_con_x values('无所谓','XX');3、查询表中所有数据,select t.*, rowid from test_con_x t;4、编写sql,根据指定条件查找所需数据,select t.*, rowid from test_con_x t where regexp_like(company_name,'学校|银行|保险|金融')可以看到只有四条所需记录,...

sql查询语句计算重复数据个数
test_count values(9, 3);insert into test_count values(10, 3);commit;3、查询表中全量数据,select t.*, rowid from test_count t;4、编写sql,可以得到每一个value重复的个数,并按照由大到小排列;select value, count(*) from test_count t group by value order by 2 desc ...

相似回答