【问题标题】:T-SQL | SQL-Server Pivot [closed]T-SQL | SQL-Server Pivot [关闭]
【发布时间】:2015-12-06 07:45:03
【问题描述】:

这是当前查询:

SELECT 
    cod.COM_DESC
   ,count(emp.OBE_Name) colValue
   ,'Total'[Desc] 
FROM OBP_EMP_MASTER emp
LEFT JOIN COMMONCODES cod 
  ON  emp.OBE_AGENT_DR = cod.COM_SLNO 
WHERE OBE_AGENT_DR IS NOT NULL 
GROUP BY cod.COM_DESC

UNION ALL

SELECT 
     cod1.COM_DESC
    ,count(rep.OBE_Name) colValue
    ,'Replaced'[Desc]  
FROM OBP_EMP_REPLACE_HISTORY rep 
LEFT JOIN COMMONCODES cod1 
  ON rep.OBE_AGENT_DR = cod1.COM_SLNO 
WHERE OBE_AGENT_DR IS NOT NULL
GROUP BY cod1.COM_DESC

结果

期望的结果

【问题讨论】:

  • 搜索条件求和或条件聚合。
  • 您也可以检查是否使用PIVOT ;)。
  • 您必须展示尝试过的内容以及失败的原因。您不能指望有人向您发布完整的解决方案并解决您的问题
  • 以这种态度,去雇人吧。
  • 添加更多样本数据,不太清楚如何得到预期的结果。

标签: sql sql-server tsql


【解决方案1】:

试试:

select
    Agent,
    max(case when `desc` = 'Total' then ColValue else 0 end) Total,
    max(case when `desc` = 'Replaced' then ColValue else 0 end) Replaced
from tbl
group by Agent  

演示 sqlfiddle

【讨论】:

  • 我想 SUM 是 OP 想要的。 (我知道,样本数据的答案相同,但如果 OP 添加更多样本数据,我们就会知道。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-03
  • 1970-01-01
  • 2022-01-20
  • 2014-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多