| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1356 人关注过本帖
标题:[求助]归类查询
只看楼主 加入收藏
anjincheng
Rank: 2
等 级:论坛游民
威 望:5
帖 子:728
专家分:31
注 册:2005-7-27
结帖率:68.57%
收藏
 问题点数:0 回复次数:13 
[求助]归类查询

各老师:
有表A
ID NAME ARRIVE
1 张三 迟到
2 李四 正常
3 张三 早退
4 王二 正常
5 麻子 正常
6 李四 请假
7 麻子 请假
8 王二 迟到
........................................

我想查询后,实现以下表B
姓名 迟到/次 早退/次 请假/次
张三 1 1 0
李四 0 0 1
王二 1 0 0
麻子 0 0 1

请问各老师,这样实现,谢谢!~

[此贴子已经被作者于2007-1-26 10:32:32编辑过]

搜索更多相关主题的帖子: 李四 张三 归类 王二 麻子 
2007-01-26 10:31
棉花糖ONE
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:2987
专家分:0
注 册:2006-7-13
收藏
得分:0 
select name,sum(case ARRIVE when 迟到 then 1 else 0 end) as 迟到/次 ,sum(case ARRIVE when 早退 then 1 else 0 end) as 早退/次,
sum(case ARRIVE when 请假 then 1 else 0 end) as 请假/次 group by name

26403021 sql群 博客 blog./user15/81152/index.shtml
2007-01-26 10:45
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
收藏
得分:0 

楼主发贴抬头的称呼看了有点儿寒~


2007-01-26 11:38
ninggang
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:637
专家分:0
注 册:2006-11-1
收藏
得分:0 
有点象我们的一个同学
呵呵

大家一起努力,共同打造未来!!
2007-01-30 14:40
ninggang
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:637
专家分:0
注 册:2006-11-1
收藏
得分:0 
sum(case ARRIVE when 迟到 then 1 else 0 end)
jinyuzhang
可以解释一下,这个东东吗?现在不在学校,手里没有这方面的资料,谢谢!!

大家一起努力,共同打造未来!!
2007-01-30 14:42
ninggang
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:637
专家分:0
注 册:2006-11-1
收藏
得分:0 
case ARRIVE when 迟到
上面的这句话,倒是可以猜啊
不过这句话,有点不好猜
then 1 else 0 end

大家一起努力,共同打造未来!!
2007-01-30 14:43
棉花糖ONE
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:2987
专家分:0
注 册:2006-7-13
收藏
得分:0 

简单 CASE 函数:

CASE input_expression
WHEN when_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
END

CASE 搜索函数:

CASE
WHEN Boolean_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
END

参数
input_expression

是使用简单 CASE 格式时所计算的表达式。Input_expression 是任何有效的 Microsoft® SQL Server™ 表达式。

WHEN when_expression

使用简单 CASE 格式时 input_expression 所比较的简单表达式。When_expression 是任意有效的 SQL Server 表达式。Input_expression 和每个 when_expression 的数据类型必须相同,或者是隐性转换。

n

占位符,表明可以使用多个 WHEN when_expression THEN result_expression 子句或 WHEN Boolean_expression THEN result_expression 子句。

THEN result_expression

当 input_expression = when_expression 取值为 TRUE,或者 Boolean_expression 取值为 TRUE 时返回的表达式。result expression 是任意有效的 SQL Server 表达式。

ELSE else_result_expression

当比较运算取值不为 TRUE 时返回的表达式。如果省略此参数并且比较运算取值不为 TRUE,CASE 将返回 NULL 值。Else_result_expression 是任意有效的 SQL Server 表达式。Else_result_expression 和所有 result_expression 的数据类型必须相同,或者必须是隐性转换。

WHEN Boolean_expression

使用 CASE 搜索格式时所计算的布尔表达式。Boolean_expression 是任意有效的布尔表达式。

结果类型
从 result_expressions 和可选 else_result_expression 的类型集合中返回最高的优先规则类型。有关更多信息,请参见数据类型的优先顺序。

结果值
简单 CASE 函数:
计算 input_expression,然后按指定顺序对每个 WHEN 子句的 input_expression = when_expression 进行计算。


返回第一个取值为 TRUE 的 (input_expression = when_expression) 的 result_expression。


如果没有取值为 TRUE 的 input_expression = when_expression,则当指定 ELSE 子句时 SQL Server 将返回 else_result_expression;若没有指定 ELSE 子句,则返回 NULL 值。
CASE 搜索函数:
按指定顺序为每个 WHEN 子句的 Boolean_expression 求值。


返回第一个取值为 TRUE 的 Boolean_expression 的 result_expression。


如果没有取值为 TRUE 的 Boolean_expression,则当指定 ELSE 子句时 SQL Server 将返回 else_result_expression;若没有指定 ELSE 子句,则返回 NULL 值。

帮助里面的


26403021 sql群 博客 blog./user15/81152/index.shtml
2007-01-30 14:46
ninggang
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:637
专家分:0
注 册:2006-11-1
收藏
得分:0 
好快呀!!
谢谢

大家一起努力,共同打造未来!!
2007-01-30 14:51
huangqi114
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-2-6
收藏
得分:0 

select name,迟到=sum(case
when ARRIVE='迟到' then 1
else
0
end),
早退=sum(case
when ARRIVE='早退' then 1
else
0
end),
请假=sum(case
when ARRIVE='请假' then 1
else
0
end)
from A
group by name
2007-02-06 22:57
初学Delphi
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:330
专家分:0
注 册:2006-4-4
收藏
得分:0 

看看经典的sql语句那个帖子吧,看明白这个题目你就不用请教老师了
虽然不太一样,但你理解每一句的意思之后,就会觉得很简单

2007-02-07 16:10
快速回复:[求助]归类查询
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025421 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved