SQL Server: как рассчитать разные суммы в одном запросе - PullRequest
4 голосов
/ 15 февраля 2010

Друг предложил мне опубликовать здесь, так как мне нужна помощь!

Макет БД:

**salestable**
salesorder [primary, unique] (sales order number)
salesman (salesperson id)

**salesline**
salesorder [many sales line to single salestable relationship]
saleprice (line amount)
isaccessory (0 or 1)

Хотелось бы, чтобы в одном выборе была сумма продажной цены как общая сумма на одного продавца, а также сумма продажной цены, где аксессуар = 1.

Группировка и объединения - это не то, на чем я застрял, а могу ли я сделать двойную сумму.

В моей голове это выглядело бы как

...salesman,sum(amount) as totalsales,sum(amount where accessory=1) as accessorysales...

Но очевидно, что это никогда не сработает!

Заранее спасибо! (PS, я очень новичок здесь, будь нежным ...)

1 Ответ

6 голосов
/ 15 февраля 2010
SELECT  salesman, SUM(amount), SUM(CASE WHEN accessory = 1 THEN amount ELSE 0 END)
FROM    salestable t
JOIN    salesorder o
ON      o.salesorder = t.salesorder
GROUP BY
        salesman
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...