我有一个聚合查询,检查我是否有多条符合某些条件的记录。
SELECT RegardingObjectId, COUNT(*) FROM [CRM_MSCRM].[dbo].[AsyncOperationBase] a
where WorkflowActivationId IN ('55D9A3CF-4BB7-E311-B56B-0050569512FE',
'1BF5B3B9-0CAE-E211-AEB5-0050569512FE',
'EB231B79-84A4-E211-97E9-0050569512FE',
'F0DDF5AE-83A3-E211-97E9-0050569512FE',
'9C34F416-F99A-464E-8309-D3B56686FE58')
and StatusCode = 10
group by RegardingObjectId
having COUNT(*) > 1
这很好,但是AsyncOperationBase
中有一个字段是唯一的。假设count(*)
= 3,AsyncOperationBaseId
中的AsyncOperationBase
将有3个不同的值,因为AsyncOperationBase
是表的主键。
说实话,我甚至不知道谷歌有哪些术语和表达方式可以找到解决方案。
如果有人有解决方案,还有什么话可以描述我在寻找什么?也许商务智能人员经常会面临这样的要求......
我可以使用SSRS报告来执行此操作,报告可以直观地进行分组,然后我可以扩展每个分组行以获取AsyncOperationBaseId
值,但只是通过SQL,我似乎无法找到方法出...
感谢。
答案 0 :(得分:2)
select * from [CRM_MSCRM].[dbo].[AsyncOperationBase]
where RegardingObjectId in
(
SELECT RegardingObjectId
FROM [CRM_MSCRM].[dbo].[AsyncOperationBase] a
where WorkflowActivationId IN
(
'55D9A3CF-4BB7-E311-B56B-0050569512FE',
'1BF5B3B9-0CAE-E211-AEB5-0050569512FE',
'EB231B79-84A4-E211-97E9-0050569512FE',
'F0DDF5AE-83A3-E211-97E9-0050569512FE',
'9C34F416-F99A-464E-8309-D3B56686FE58'
)
and StatusCode = 10
group by RegardingObjectId
having COUNT(*) > 1
)