Sql server 其中,条件基于另一个查询中的计数行
我正在尝试使用一个条件进行查询,该条件基于在另一个查询中获得的行数。但是我找不到正确的方法。有人能帮我吗?我想做的是:Sql server 其中,条件基于另一个查询中的计数行,sql-server,Sql Server,我正在尝试使用一个条件进行查询,该条件基于在另一个查询中获得的行数。但是我找不到正确的方法。有人能帮我吗?我想做的是: SELECT ChildDummyTable.Id ChildDummyTableId, ParentDummyTable.Id ParentDummyTableId FROM [DummyTable] ChildDummyTable INNER JOIN [DummyTable] ParentDummyTable ON ParentDum
SELECT ChildDummyTable.Id ChildDummyTableId,
ParentDummyTable.Id ParentDummyTableId
FROM [DummyTable] ChildDummyTable
INNER JOIN [DummyTable] ParentDummyTable
ON ParentDummyTable.Id = ChildDummyTable.ParentDummyRowId
where (SELECT DummyRow2 FROM DummyTable2 WHERE DummyTableId=ChildDummyTable.Id
except SELECT DummyRow2 FROM DummyTable2 ParentDummyTable2
WHERE ParentDummyTable2.DummyTableId=DummyTable.Id).COUNT(DummyRow2)>0
您可以使用
EXISTS
:
SELECT ChildDummyTable.Id ChildDummyTableId,
ParentDummyTable.Id ParentDummyTableId
FROM [DummyTable] ChildDummyTable
INNER JOIN [DummyTable] ParentDummyTable
ON ParentDummyTable.Id = ChildDummyTable.ParentDummyRowId
WHERE EXISTS(SELECT DummyRow2 FROM DummyTable2
WHERE DummyTableId=ChildDummyTable.Id
EXCEPT
SELECT DummyRow2 FROM DummyTable2 ParentDummyTable2
WHERE ParentDummyTable2.DummyTableId=DummyTable.Id)
with a as
(SELECT ChildDummyTable.Id ChildDummyTableId
,ParentDummyTable.Id ParentDummyTableId
,ROW_NUMBER() OVER(PARTITION by
ChildDummyTable.Id ChildDummyTableId
,ParentDummyTable.Id ParentDummyTableId
)
aS duplicateRecCount
FROM [DummyTable] ChildDummyTable
INNER JOIN [DummyTable] ParentDummyTable
ON ParentDummyTable.Id = ChildDummyTable.ParentDummyRowId
)
Select * from a
where duplicateRecCount > 1