首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >t-sql子查询和groupby

t-sql子查询和groupby
EN

Stack Overflow用户
提问于 2011-11-10 10:07:45
回答 1查看 155关注 0票数 0

在“我的问题”下面,我选择这样的方式,用全名计算所有的职务。

代码语言:javascript
复制
SELECT COUNT(sy.FullName)                        [Count Job],
       sy.FullName                               [FullName],
       MIN(CAST(i.vrp_notificationdate AS DATE)) [Oldest Date]
FROM   BusinessUnit AS b
       INNER JOIN SystemUser AS sy
         ON b.BusinessUnitId = sy.BusinessUnitId
       INNER JOIN Incident AS i
         ON i.OwnerId = sy.SystemUserId
GROUP  BY f.sy.FullName 

此查询显示此表。

--

但我想做桌子下面的东西。

FullName最老日期开放职务关闭工作10 A 2011年-10-11 5 5 20 B2011年-10-11 13 7 55 C 2011-10-11 48 7

我的事件表中有列名的状态,如果状态代码为5,作业为closed.when,我按条件状态代码使用组,那么表在.And下,我不想显示这个显示表。

-11

当我在their上使用UNION时,我认为“使用union、INTERSECT或on运算符组合的所有查询都必须在其目标列表中有相同数量的表达式”。

如何准确地解决这个query.Any建议。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-10 11:32:44

用CASE和SUM怎么样?

代码语言:javascript
复制
SELECT COUNT(sy.FullName)                        [Count Job],
       sy.FullName                               [FullName],
       MIN(CAST(i.vrp_notificationdate AS DATE)) [Oldest Date],

       SUM(CASE i.status 
             WHEN 5 THEN 1
             ELSE 0)                             [Open Jobs],

       SUM(CASE i.status 
            WHEN 5 THEN 0
            ELSE 1)                              [Closed Jobs]

FROM   BusinessUnit AS b
       INNER JOIN SystemUser AS sy
         ON b.BusinessUnitId = sy.BusinessUnitId
       INNER JOIN Incident AS i
         ON i.OwnerId = sy.SystemUserId
GROUP  BY f.sy.FullName 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8077820

复制
相关文章

相似问题

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