一个SQL查询语句,想了好久,没弄好。

jxbw7408 2012-12-13 05:10:57
有一个表User

Name Type
AA 进
AB 出
AA 出
AC 进
AC 出
AC 进
AD 进

想通过一个查询语句得到以下结果
Name 进 出
AA 1 1
AB 0 1
AC 2 1
AD 1 0
...全文
504 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanshanhezhiyong 2012-12-30
  • 打赏
  • 举报
回复
select Name,
sum(case type when '进' then 1 else 0 end ) as 进,
sum(case type when '出' then 1 else 0 end ) as 出
from TableName
group by Name
lanshanhezhiyong 2012-12-30
  • 打赏
  • 举报
回复
参考我这个吧:



select (case teacher_type when 1 then '校内专任' else '校内兼职' end)as 职位,sum(case degree when 0 then 1 else 0 end) as 博士研究生,sum(case degree when 1 then 1 else 0 end) as 硕士研究生,
sum(case degree when 2 then 1 else 0 end) as 本科,sum(case degree when 3 then 1 else 0 end) as 专科,
sum(case degree when 4 then 1 else 0 end) as 专科以下 from teachers where year=2011 group by teacher_type
fox600123 2012-12-14
  • 打赏
  • 举报
回复
好像oracle不支持中文字段名。微软系应该没问题。
jxbw7408 2012-12-14
  • 打赏
  • 举报
回复
select Tem.Name,sum(进) as 进,sum(出) as 出 from ( select Uwork,case Utyn when '进' then 1 else 0 end '进', case Utyn when '出' then 1 else 0 end '出' from user) Tem group by aa.Name 用以上语句搞定。
wanglipo 2012-12-14
  • 打赏
  • 举报
回复
select Name, sum(case type when '进' then 1 else 0 end ), sum(case type when '出' then 1 else 0 end '出') from TableName group by Name
jxbw7408 2012-12-14
  • 打赏
  • 举报
回复
没有对,Name不在选择列,如果加上Name的话,出来的结果没有得到汇总的目的
-HelloWorld- 2012-12-14
  • 打赏
  • 举报
回复
引用 2 楼 darkeye 的回复:
SQL code ? 12345678910 select Name, sum(进) '进', sum(出) '出' from ( select Name, case type when '进' then 1 else 0 end '进', case type when '出' then 1 else 0 end '出'from TableName……
+1
darkeye 2012-12-13
  • 打赏
  • 举报
回复


select Name, sum(进) '进', sum(出) '出' from 
(
select Name,
       case type when '进' then 1 else 0 end '进',
       case type when '出' then 1 else 0 end '出'
from TableName
) tmp
group by 进, 出
随手敲的,没验证过,应该问题不大
UnkownState 2012-12-13
  • 打赏
  • 举报
回复
使用case

2,495

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧