2015-11-19 35 views
0

我是這個論壇的新手,也是SQL,需要在工作中快速查看。我搜索了這樣一個話題,但沒有找到確切的同樣的問題...選擇與其他表格匹配的計數值使用SQL的值

我有2個表:表A表B和

表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 

我現在的問題是要計算TableB中的同名名稱數(這就是我的想法)

Select(*) from TableB where Count(Name) <> TableA.NumberOfScreens 

因此,如果ABC1在TableB中出現5次並且ABC1 = 5的TableA.NumberOfScreens,我不希望它出現在我的SELECT中。 如果ABC3在TableB中出現3次並且ABC3 = 5的TableA.NumberOfScreens出現,我需要它出現在我的SELECT中。

誰能幫助我?

謝謝:)

+1

你可以對預期的結果更精確? –

+0

我需要從TableB中的列中獲取所有名稱,其中TableB中的Number發生的次數低於TableA中的Number。一個小例子: ABC1在TableB中出現3次,但ABC1 = 5的TableA.NumberOfScreens,所以我需要它被選中。 ABC3在TableB中出現4次,而ABC3 = 4的TableA.NumberOfScreens,所以不需要選擇 –

回答

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 
+0

,它給了我TableA的值,但我需要TableB的列:) –

+0

您可以加入此結果與表B –

+0

你能給我一點幫助嗎?正如我所說,我是新來的SQL和我只是無法得到我想要的結果:( –

相關問題