yaswanthkrishna Ответов: 1

Sql-запрос для продаж команды, если член команды также является менеджером.


ПРИВЕТ,

У меня есть 4 столбца как показано ниже здесь мои фильтры EmpName и Month
1.Столбец empname
2.Менеджер
3.EmpSales
4.Месяц

Мне нужен столбец Team Sales и MTD sales из запроса, который дает результат, основанный на приведенной ниже логике

Логика продаж команды :если я выберу Emp A и если он также является менеджером, то продажи команды будут равны 3450 (что является суммой A+B+C) за месяц 1, потому что мы также должны суммировать продажи

Логика продаж MTD: если я выберу Emp A, и если он также является менеджером, то тогда значение продаж команды MTD 3450 для месяца 1, и если я выберу месяц 2, оно должно показать 5660(что является суммой месяца 1 и месяца 2), где мы должны суммировать продажи также, если он менеджер.
Month	Emp	sales	Manager	TeamSales	MTD Team Sales
1	A	100	D	3450	3450
1	A	150	D	3450	3450
1	A	200	D	3450	3450
1	A	250	D	3450	3450
1	A	300	D	3450	3450
1	A	350	D	3450	3450
1	A	200	D	3450	3450
3	B	350	A	0	0
1	B	400	A	0	0
1	B	450	A	0	0
2	C	100	A	0	0
2	C	200	A	0	0
2	C	250	A	0	0
2	C	300	A	0	0
2	C	400	A	0	0
3	B	500	A	0	0
3	B	500	A	0	0
3	B	450	A	0	0
3	B	450	A	0	0
3	B	450	A	0	0
3	A	500	D	4550	10150
3	A	500	D	4550	10150
3	A	250	D	4550	10150
1	C	200	A	0	0
1	C	200	A	0	0
1	C	150	A	0	0
3	C	150	A	0	0
3	C	150	A	0	0
3	C	150	A	0	0
1	B	250	A	0	0
1	B	250	A	0	0
3	C	150	A	0	0
2	B	150	A	0	0
2	B	250	A	0	0
2	A	250	D	2150	5600
2	A	250	D	2150	5600


Что я уже пробовал:

Я пытался по-разному понять логику менеджера.

CHill60

-Я пытался разными способами добиться логики менеджера. - почему бы вам не поделиться этими попытками с нами?

1 Ответов

Рейтинг:
1

Zunayed Shahriar

Я думаю, это то, что вы ищете.
Сделано с MSSQL.

DECLARE
@EmpName VARCHAR(50),
@Month INT
-- Your filters

SET @EmpName = 'A'
SET @Month = 3
-- Value for filters

SELECT @EmpName Emp, @Month Month,
(SELECT SUM(Sales) FROM dbo.[Table] WHERE (Employee = @EmpName OR Manager = @EmpName) AND Month = @Month) TeamSales,
(SELECT SUM(Sales) FROM dbo.[Table] WHERE (Employee = @EmpName OR Manager = @EmpName) AND Month <= @Month) 'MTD Team Sales'


Структура таблицы:
Таблица имен
Month	int	Checked
Employee	varchar(50)	Checked
Sales	int	Checked
Manager	varchar(50)	Checked


Значения в таблице:

Month Employee Sales Manager
1	A	100	D
1	A	150	D
1	A	200	D
1	A	250	D
1	A	300	D
1	A	350	D
1	A	200	D
3	B	350	A
1	B	400	A
1	B	450	A
2	C	100	A
2	C	200	A
2	C	250	A
2	C	300	A
2	C	400	A
3	B	500	A
3	B	500	A
3	B	450	A
3	B	450	A
3	B	450	A
3	A	500	D
3	A	500	D
3	A	250	D
1	C	200	A
1	C	200	A
1	C	150	A
3	C	150	A
3	C	150	A
3	C	150	A
1	B	250	A
1	B	250	A
3	C	150	A
2	B	150	A
2	B	250	A
2	A	250	D
2	A	250	D