2012-12-15 36 views
0

確定每個成員的團隊字段中'a'的發生次數和日期發生次數(作爲一個組)是必需的。的數據樣本是如下:分區號

**member & date**|     **Team** 
a010112|         a 
a010112|         b 
a010112|         c 
a010112|         d 
b010112|         b 
b010112|         b 
c010112|         a 
c010112|         b 
c010112|         c 

期望的結果如下:

**member & date|     **team**|  **Occurrence of 'a' per member & date** 
a010112|         a|    yes 
a010112|         b|    yes 
a010112|         c|    yes 
a010112|         d|    yes 
b010112|         b|    no 
b010112|         b|    no 
c010112|         a|    yes 
c010112|         b|    yes 
c010112|         c|    yes 

所計算的場 - 的「一個」每構件&日期分組的出現是要計算的字段從數據庫查詢通過case語句/分區/ over。能否爲所需的語法提供一些幫助?

謝謝你,

+2

請發表您的嘗試。 –

+0

團隊='a'的情況下,然後'是'結束(按會員和日期劃分)否則結束。 – mlee

回答

1

試試這個

Declare @t Table ([Member and Date] Varchar(50), Team Varchar(10)) 
Insert Into @t Values 
    ('a010112','a'),('a010112','b'),('a010112','c'),('a010112','d'), 
    ('b010112','b'),('b010112','b'), 
    ('c010112','a'),('c010112','b'),('c010112','c') 

SELECT 
    x.[Member and Date] 
    ,x.[Team] 
    ,[Occurrence of 'a' per member & date] = CASE WHEN y.[Member and Date] IS NULL THEN 'No' ELSE 'Yes' END 

From @t x 
Left Join(Select Distinct [Member and Date] 
    From @t Where Team = 'a')y 
On x.[Member and Date] = y.[Member and Date] 

enter image description here