2014-06-19 47 views
2

我從2米讀取保存值的表內對目前存在的行多列比較:SQL Server的同桌

---------------------------- 
    Date | MeterID | Value 
---------------------------- 
    1/2/14  A  1.3 
    2/2/14  A  1.8 
    2/2/14  B  3.8 
    3/3/14  A  1.2 
    4/3/14  A  1.8 
    4/3/14  B  2.9 

我需要一個查詢,將數天的一個閱讀數是否存在兩種儀表類型(A & B)?
在上面的例子中,這應該產生2作爲結果。

謝謝。

回答

5

您可以使用臨時表列出[Date]■當有在MeterID是出現兩個AB然後COUNT()這一切[Date] S:

SELECT COUNT(t.*) 
FROM (SELECT [Date] 
     FROM [table] 
     GROUP BY [Date] 
     HAVING COUNT(DISTINCT [MeterID]) = 2 
    ) t 
+0

謝謝你....還有一個問題.....如果我有另一個領域,我也想過濾,例如誰閱讀的人名,那麼我想國家t每個人在同一天讀取兩個米的天數 - 如何添加此? – user3359779

+0

@ user3359779:那麼,它不是很清楚,但是你可以嘗試在'SELECT'和'GROUP BY'子句中加入'name',這樣你就可以得到每個人和每天的數據。 – potashin

0

另一種解決方案,利用集:

select count(*) from 
(
    select distinct date from table where meterid='A' 
    intersect 
    select distinct date from table where meterid='B' 
) x