在“我的问题”下面,我选择这样的方式,用全名计算所有的职务。
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建议。
谢谢。
发布于 2011-11-10 11:32:44
用CASE和SUM怎么样?
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 https://stackoverflow.com/questions/8077820
复制相似问题