我目前使用這個SQL語句返回由誰完成每個記錄計數(RFI):我可以將兩列合併爲一列,然後將它們的值計算爲一列嗎?
SELECT Completed_By, COUNT(DISTINCT Unique_ID) AS RFICount FROM RFI_
WHERE Date_Submitted BETWEEN '20110101' AND '20110630'
GROUP BY Completed_By
這將返回一個數據集,像下面這樣:
Completed_By RFICount
------------ ---------
SMITH, Bob 1
DOE, John 15
WARNER, Jack 11
這是我多麼希望它看起來。但是,有人可以是完成或協助完成記錄(RFI)的主要或次要人員。無論他們是完成記錄(Completed_By)還是輔助它(Assisting_Analyst),我都想在一列中全部顯示。
當我使用下面的SQL語句,它顯示了這些作爲單獨的,當他們需要進行彙總:
SELECT Completed_By, Assisting_Analyst, COUNT(DISTINCT Unique_ID) AS RFICount
FROM RFI_ WHERE Date_Submitted BETWEEN '20110101' AND '20110630'
GROUP BY Completed_By, Assisting_Analyst
這將返回以下類型的輸出:
Completed_By Assisting_Analyst RFICount
------------ ----------------- --------
SMITH, Bob NULL 1
DOE, John NULL 15
WARNER, Jack NULL 7
WARNER, Jack SMITH, Bob 4
因爲鮑勃·史密斯協助傑克華納有四個記錄(RFIs),有一個獨立的行創建。但我只是希望每個拿到個人信用,並讓它在一列中顯示出來,就像這樣:
Completed_By RFICount
------------ ---------
SMITH, Bob 5
DOE, John 15
WARNER, Jack 11
在上面的例子中,四個記錄他們的工作就共同記入他們兩個。當然,這意味着一些記錄被計數兩次,但這是我想要的這個應用程序。
我嘗試過工會和一堆其他的東西,但它要麼不給我我想要的東西,因爲我想顯示或它給了我一個沒有數據的錯誤。我知道DISTINCT必須去,但不知道如何完全做到這一點。這是在SQL Server 2008 R2中完成的。幫幫我?
是否有可能有人出現在一些列第二助理(如'Assising_analyst'),而不是顯示爲第一助理(如'Completed_By')中的任何行? – 2011-06-08 21:19:14
這是不太可能的,但是,這是可能的。 – 2011-06-09 16:22:31
然後我第一次嘗試將不計入那些:( – 2011-06-09 16:23:53