我是这个论坛的新手,也是SQL的新手,需要在工作中快速查看。我搜索了这样的话题,但没有找到完全相同的问题......
我有2个表:TableA和TableB
表A
Name NumberOfScreens
-----------------------
ABC1 5
ABC2 4
ABC3 7
表B
Name Date Duration
------------------------
ABC1 x xxx
ABC1 x xxx
ABC1 x xxx
ABC3 x xxx
ABC3 x xxx
我现在的问题是计算表B中的相等名称数量(这就是我的想法)
Select(*) from TableB where Count(Name) <> TableA.NumberOfScreens
因此,如果ABC1在TableB中出现5次,而ABC1 = 5的TableA.NumberOfScreens,我不希望它出现在我的SELECT中。 如果ABC3在TableB中显示3次并且ABC3 = 5的TableA.NumberOfScreens,我需要它出现在我的SELECT中。
任何人都可以帮助我吗?
谢谢:)
答案 0 :(得分:1)
select A.Name, A.NumberOfScreens
from TableA A join TableB B
on A.Name = B.Name
group by A.Name,A.NumberOfScreens
having count(*) = A.NumberOfScreens
编辑:
select tb.Name, tb.Date, tb.Duration from TableB tb join ( select A.Name tmpName, A.NumberOfScreens tmpNumberOfScreen from TableA A join TableB B on A.Name = B.Name group by A.Name,A.NumberOfScreens having count(*) <> A.NumberOfScreens ) tmp on tb.name = tmp.tmpName