我正在尝试在表中汇总与条件匹配的所有行(如OpenOrder)和不匹配的行。 现在,我有一个显示所有条件的查询
select count(fk_OrderType)OrderCount, OrderName
from TrainingOrders group by fk_ActionTrainingType
此查询显示具有以下内容的表:
OrderName OrderCount
A 10
B 5
C 7
D 3
我想要的是这个
OrderName ORderCount
A 10
E 15 (B+C+D)
我尝试过
select sum(case when fk_OrderType= 45175 then 1 else 0 end) OpenOrder,
sum(case when fk_OrderType<> 45175 then 1 else 0 end) NoOpenOrder
from TrainingOrders
但是结果不是Iam想要的。有人高个子我必须使用嵌套查询,但是我不知道该怎么做。 请在这个问题上的任何亮光将不胜感激。
答案 0 :(得分:0)
感谢您的时间,对于我的问题中缺少细节或澄清的内容,我们深表歉意。我已经按照https://www.sqlshack.com/es/multiples-opciones-para-transponer-filas-en-columnas/
中的示例使用数据透视表解决了问题SELECT *
FROM
(
select JobName,count(fk_OrderType)OrderCount, OrderName
from TrainingOrders group by fk_ActionTrainingType
) AS SourceTable PIVOT(sum([OrderCount]) FOR [OrderName] IN([A],
[B],
[C],
[D],
[E])) AS PivotTable
order by JobName;
这样,我得到了想要的结果。