首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于显示查询字段的sql

用于显示查询字段的sql
EN

Stack Overflow用户
提问于 2013-12-20 15:51:57
回答 2查看 62关注 0票数 0

我编写了一个sql来获取数据库中每个用户的票证信息。

代码语言:javascript
复制
select u.realname,count(t.id) as ct,t.Status
from Tickets t,Users u
where u.id=t.Owner and (t.status='New' or t.status='Stalled' or t.status='Open')
group by u.realname,t.status;

它提供这样的输出

代码语言:javascript
复制
| Enoch Root           |     1 | new     |
| Enoch Root           |     1 | stalled |
| xyz   Chan           |     1 | open    |
| Jim                  |    22 | stalled |

但是我要找的是用户对照状态。

喜欢

代码语言:javascript
复制
       open   stalled  new
 root    1       10      14

请让我知道

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-20 16:02:17

代码语言:javascript
复制
select u.realname, 
  sum( if( t.status = 'New', 1, 0 ) ) as new, 
  sum( if( t.status = 'Stalled', 1, 0 ) ) as stalled, 
  sum( if( t.status = 'Open', 1, 0 ) ) as open
from Tickets t, Users u
where 
  u.id = t.Owner and 
  t.status in ( 'New', 'Stalled', 'Open' )
group by u.realname
票数 0
EN

Stack Overflow用户

发布于 2013-12-20 16:00:07

代码语言:javascript
复制
SELECT
  u.realname,
  SUM(t.status='Open') AS `Open`,
  SUM(t.status='Stalled') AS `Stalled`,
  SUM(t.status='New') AS `New`
FROM Tickets t INNER JOIN Users u
     ON u.id=t.Owner
WHERE (t.status='New' OR t.status='Stalled' OR t.status='Open')
GROUP BY
  u.id, u.realname
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20707345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档