我有一个临时表#temp1
,基本上有一个特定表的转储
Create Table #temp
([CaseSeveranceID] [int] ,
[OldCaseNbr] nvarchar(12) ,
[OldCDI] [int] ,
[NewCaseNbr] nvarchar(12),
[NewCDI] [int],
)
Insert into #temp
Select * from CSS where .....
我有另一个表cst
,基本上具有以下关系
css.caseSeveranceID = cst.CaseSeveranceID
该表cst
具有一列Processed
,其值可以为“ yes”或“ no”。我们的目标是找出每个caseSeveranceID
在#temp
行,其中的数的计数Processed = 'yes'
和行每个的总数CaseSeveranceID
发现的。
示例:#temp
表中的CaseSeveranceID1002,1005,1008
在表中CST
,我们可以有
CSTId = 101
CaseSEveranceID = 1002
Processed = 'Yes'
CSTId = 102
CaseSEveranceID = 1002
Processed = 'Yes'
CSTId = 103
CaseSEveranceID = 1002
Processed = 'No'
以及其他记录。最后,我需要让#temp表具有列名ProcessCount
以及现有列,这些列将具有CaseSeveraneID 1002
as的值2/3
(是/总nb的nbr)。
什么是做到这一点的最佳方法。如果您需要任何澄清或更多信息,请让我知道。
未经测试,但应该是这样的:
SELECT a.CSTId, sum(CASE WHEN Processed = 'Yes' THEN 1 ELSE 0 END) as num_yes, count(cst_id) as num_total
FROM #temp a
INNER JOIN cst b ON a.caseSeveranceID = b.CaseSeveranceID
GROUP BY a.CSTId
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句