2009-12-03 34 views
0

我有一個很奇怪的問題:SQL計數,計數Halfs!

當某些銷售是由(完成)的記錄被插入用於銷售人員,目前該查詢表和「計數」的事件和ID(連同通常的日期邊界)來計算「關閉」銷售的數量。 這目前正在正常工作。

現在一些銷售「共享」銷售的問題,產品通過導線連接,通常是鉛和產品總是由同一銷售人員,然而,在某些罕見的情況下會導致可以通過創建銷售人員和產品由另一個「銷售」,在這種情況下,「銷售」計算需要將每個銷售人員獎勵0.5(一半)。

什麼是最好的SQL方法來解決這個問題?

(SQL Server 2005中)

回答

4
SELECT 
    SUM(CASE WHEN SaleUserID = LeadUserID THEN 1 ELSE 0.5) 
FROM 
    sales 
WHERE 
    (SaleUserID = @targetID OR LeadUSerID = @targetID) 
    -- AND dateCriteria 
+0

謝謝,這是我需要的方向!實際的查詢比這個稍微複雜一些,但總的想法幫助我找到了正確的解決方案,所以我將你的答案標記爲答案。 aamoQ已經說過同樣的事情,但你的回答稍微詳細些。 – Darknight 2009-12-03 11:22:53

+0

抱歉錯誤輸入了ammoQ的用戶名! – Darknight 2009-12-03 11:28:09

2

只需使用SUM(),而不是COUNT(),即

SELECT SUM(CASE WHEN shared=1 THEN 0.5 ELSE 1 END) FROM sales WHERE ... 
1

我猜你有辦法 「全面銷售」 和「半區分銷售」。 分別計算「全部銷售」數量和「半價銷售」數量。 然後添加完整+ 0.5 *一半。