Я построил отчет о продажах, который показывает продавца, клиента, а затем показывает продажи в прошлом году, продажи в этом году, незавершенные продажи в этом году, упущенные продажи в этом году, а затем столбец в конце под названием «In Play». Формула In Play должна представлять собой прошлогодние продажи - SUM (продажи в этом году, ожидаемые в этом году, потери в этом году). Если результат формулы меньше 0, я хочу, чтобы он отображал 0.
На уровне клиента я могу заставить его работать со следующим: = Iif (SUM (Fields! InPlay.Value) ‹0,0, SUM (Fields! InPlay.Value)). Я создал вычисляемое поле для InPlay со следующим: = Fields! LastSeasonRevenue.Value-Fields! CurrentSeasonContractedRevenue.Value-Fields! CurrentSeasonPendingRevenue.Value-Fields! CurrentSeasonLostBusiness.Value.
Моя борьба возникает, когда я пытаюсь поместить это в итоговую строку для продавца или даже в общую сумму. Мои данные структурированы так, что в них есть несколько строк для каждого контракта, поэтому вычисляемое поле, очевидно, вычисляется построчно. Кажется, что это нормально работает, когда я суммирую все для уровня клиента в столбце «В игре», но не работает для общих сумм. Частично это происходит из-за формулы Iif, которая у меня есть, но я не могу придумать лучшего способа сделать это.
Я пробовал различные методы, чтобы суммировать его по продавцу и общей сумме либо с #error в качестве результата, либо с неправильным результатом.
Я пытался добавить изображение, но stackoverflow не позволяет мне.
РЕДАКТИРОВАТЬ: это текстовое представление моей проблемы, и это всего лишь один из продавцов в моем списке.
LastYearRev, ThisYearRev, Pending, Lost, InPlay
Клиент1 0, 0, 4972, 0, 0
Клиент2 0, 16800, 0, 0, 0
Клиент3 4800, 0, 0, 0, 4800
Клиент4 6375, 0, 0, 0, 6375
Клиент5 26754, 0, 0, 0, 26754
Клиент6 0, 1200, 0, 0, 0
Client7 5300, 0, 0, 0, 5300
Итого 43229, 18000, 4972, 0, 43229
В столбце InPlay и итоговой строке я хочу, чтобы отчет отображал 43 229, но, как формула будет работать для этой строки, итоговая сумма будет 20 257.
Это должно дать вам данные, с которыми я работаю: CREATE TABLE #SampleData ([Salesman] Varchar(255),
Season varchar(255),
Company varchar(255),
Client varchar(255),
ContractNo int,
LastSeasonRevenue Decimal,
CurrentSeasonNewContractedRevenue Decimal,
CurrentSeasonContractedRevenue Decimal,
CurrentSeasonPendingRevenue Decimal,
CurrentSeasonLostBusiness Decimal,
BusinessClosedLastWeek Decimal)
;
INSERT INTO #SampleData (Salesman,Season,Company,Client,ContractNO,LastSeasonRevenue,CurrentSeasonNewContractedRevenue,CurrentSeasonContractedRevenue,CurrentSeasonPendingRevenue,CurrentSeasonLostBusiness,BusinessClosedLastWeek)
Values('Salesman1','2014-2015','Company5','Client6',1157,0,1200,1200,0,0,0),
('Salesman1','2014-2015','Company1','Client1',1267,0,0,0,4972,0,0),
('Salesman1','2013-2014','Company4','Client7',298,1600,0,0,0,0,0),
('Salesman1','2013-2014','Company4','Client7',298,3400,0,0,0,0,0),
('Salesman1','2013-2014','Company4','Client7',298,300,0,0,0,0,0),
('Salesman1','2013-2014','Company2','Client5',442,4653.75,0,0,0,0,0),
('Salesman1','2013-2014','Company9','Client3',491,4800,0,0,0,0,0),
('Salesman1','2013-2014','Company1','Client4',519,2975,0,0,0,0,0),
('Salesman1','2013-2014','Company1','Client4',519,680,0,0,0,0,0),
('Salesman1','2013-2014','Company1','Client5',674,22100,0,0,0,0,0),
('Salesman1','2013-2014','Company1','Client4',676,2720,0,0,0,0,0),
('Salesman1','2014-2015','Company1','Client2',868,0,16800,16800,0,0,0)