2009-12-03 2 views
0

다소 이상한 문제가 있습니다 : 특정 판매가 이루어질 때 (완료) 영업 사원의 이벤트와 ID로 레코드가 삽입 될 때이 표가 쿼리되고 '백작'이 사용됩니다 보통 날짜 경계) '닫힌'판매 수를 계산합니다. 현재 정상적으로 작동 중입니다.SQL 개수, 계산 Halfs!

지금 일부 판매 판매를 '공유'하는하는 문제는, 제품은 리드를 통해 연결되어, 일반적으로 납과 제품이 드문 경우가 만들 수 있습니다 이어질 그러나에 같은 판매 직원에 의해 항상 판매원과 제품이 '판매'계산을 통해 각 판매원에게 0.5 (반) 포인트를 부여해야하는 경우에는 다른 사람이 '판매'합니다.

이 문제를 해결하기위한 최선의 방법은 무엇입니까?

(SQL 서버 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

+0

죄송합니다 ammoQ의 사용자 이름을 잘못 입력하셨습니다! – Darknight

2

그냥 즉, 대신 COUNT()의)

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

을 SUM을 (사용 나는 당신이 "전체 판매"와 "반 구별 할 수있는 방법을 생각 판매". "전체 매출액"과 "절반 매출액"의 수를 별도로 계산하십시오. 그런 다음 전체 + 0.5 * 반을 추가하십시오.