Счетчик SQL, считая половины! - PullRequest
0 голосов
/ 03 декабря 2009

У меня довольно странная проблема:

когда определенные продажи сделаны (завершены), вставляется запись с событием и идентификатором торгового представителя, в настоящее время эта таблица запрашивается, и для подсчета количества «закрытых» (наряду с обычными границами дат) используется «Счет». ' продажи. В настоящее время работает нормально.

В настоящее время проблема заключается в том, что некоторые продажи 'общие' продажи, продукты связаны через потенциальных клиентов, обычно это приводит к тому, что продукт всегда принадлежит одному и тому же продавцу, однако в некоторых редких случаях можно создать потенциальную возможность на продавца и на продукт, «проданный» другим, в таком случае при расчете «продаж» необходимо присваивать каждому продавцу 0,5 (половину) балла.

Какой будет лучший SQL подход для решения этой проблемы?

(SQL Server 2005)

Ответы [ 3 ]

4 голосов
/ 03 декабря 2009
SELECT
    SUM(CASE WHEN SaleUserID = LeadUserID THEN 1 ELSE 0.5)
FROM
    sales
WHERE
    (SaleUserID = @targetID OR LeadUSerID = @targetID)
    -- AND dateCriteria
2 голосов
/ 03 декабря 2009

Просто используйте SUM () вместо COUNT (), т.е.

SELECT SUM(CASE WHEN shared=1 THEN 0.5 ELSE 1 END) FROM sales WHERE ...
1 голос
/ 03 декабря 2009

Полагаю, у вас есть какой-то способ отличить «полную продажу» от «половины продажи». Посчитайте отдельно количество «полных продаж» и количество «полных продаж». Затем добавьте полный + 0,5 * половина.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...