Долгое время читатель. Огромное количество информации на этом сайте.
Надеюсь, это не глупый вопрос, но я изо всех сил пытался найти правильные итоги в моем отчете.
У меня проблемы с простыми итогами. У меня есть отчет, который принимает разницу в два числа и показывает результат, причем результаты являются как отрицательными, так и положительными. Внизу отчета я хочу получить общую сумму разницы. Итоги даже не близки по некоторым причинам.
Вот мои данные:
Correct Data
Specialist Total Sales Budget Difference
DICK "$35,174.00" "$63,530.00" "($28,356.00)"
NATHAN "$16,193.00" "$40,000.00" "($23,807.00)"
PAUL "$52,096.00" "$55,000.00" "($2,904.00)"
STEVE "$31,185.44" "$66,700.00" "($35,514.56)"
**Totals: "$134,648.44" "$225,230.00" "($90,581.56)"**
Incorrect Data that is in my report
Specialist Total Sales Budget Difference
DICK "$35,174.00" "$63,530.00" "($28,356.00)"
NATHAN "$16,193.00" "$40,000.00" "($23,807.00)"
PAUL "$52,096.00" "$55,000.00" "($2,904.00)"
STEVE "$31,185.44" "$66,700.00" "($35,514.56)"
**TOTALS: "$134,648.44" "$225,230.00" "$71,118.44"**
Как видите, данные показывают, что общая разница составляет 71 118,44 долл. США, когда она должна быть (90 581,56 долл. США).
Вот мое выражение, чтобы получить результат разницы:
=Sum(Fields!TotalSales.Value)-Fields!Budget.Value
Я щелкнул правой кнопкой мыши на текстовом поле и выбрал «Добавить итог», чтобы получить общий итог для поля Разница. Я также попробовал это предложение:
=Sum(Fields!TotalSales.Value)-Sum(Fields!Budget.Value)
А это:
=ReportItems!textbox14.Value - ReportItems!textbox15.Value
Еще одна вещь, которую стоит упомянуть, это группировка по специалисту. Поле «Всего продаж» - это общее количество продаж в группе за этот конкретный месяц. Поле «Бюджет» - это отдельное поле вне группы.
Кажется, что ежу понятно, что это должно работать. Может быть, кто-нибудь может дать мне некоторое руководство по этому вопросу.
Заранее спасибо.
EDIT:
Спасибо за помощь, но, к сожалению, проблема сложнее :) Я должен был быть более ясным по этому поводу. Я извлекаю данные из 3-4 баз данных, и у них нет общего поля для ссылки. То, что я использую номер строки, чтобы уменьшить дубликаты промежуточных итогов и установить их равными 0. Я использовал круглое число для номера бюджета, но данные, которые я получал, были поддельными. Вот данные, которые у меня есть:
Name Team SubTotal Budget
SCOTT Vikings 202 25000.00
SCOTT Vikings 1890 25000.00
SCOTT Vikings 5167 25000.00
SCOTT Vikings 20256 25000.00
SCOTT Vikings 0 25000.00
SCOTT Vikings 0 25000.00
А вот данные, которые я хочу получить:
Name Team SubTotal Budget
SCOTT Vikings 202 25000.00
SCOTT Vikings 1890 0.00
SCOTT Vikings 5167 0.00
SCOTT Vikings 20256 0.00
SCOTT Vikings 0 0.00
SCOTT Vikings 0 0.00
Если номер бюджета повторяется более одного раза, я хочу, чтобы он был равен 0. Я думаю, именно поэтому мои итоги не отображаются правильно в SSRS. Я вычисляю поле Разница, беря GrandTotal подытогов Продавца и вычитая их из поля бюджета, которое было помещено в нижний колонтитул группы (поскольку я новичок, я не могу публиковать изображения, извините. Вот гиперссылка) *
http://i55.tinypic.com/124jw2u.png
Вот и мой SQL-оператор:
WITH InvoicedAndPaid
AS
(
SELECT KEY1
,ltrim(rtrim(CustomText01)) as CustomText01
,ROW_NUMBER() OVER(PARTITION BY DocNo ORDER BY DocNo) AS RowNumber
,SubTotal
,OrderDate
,INVOICEDATE
FROM DocumentHeadersItems AS AA
JOIN SorArCombined AS BB
ON AA.DocNo = ('AA' + BB.CustomerPoNumber)
JOIN CONTACT1 AS CC
ON AA.SoldToCMAccountNo = CC.ACCOUNTNO
WHERE CreatedBy != 'NOAHDM'
AND KEY1 IN (@org)
AND SubTotal != 0
AND LEN(INVOICE) > 0
AND
(
(
CUSTOMER = 'QAA'
AND (INVOICEDATE IS NOT NULL)
AND (DATEPART(MM,INVOICEDATE) = DATEPART(MM,@start))
AND (DATEPART(YYYY,INVOICEDATE) = DATEPART(YYYY,@end))
)
OR
(
CUSTOMER != 'QAA'
AND (YearInvBalZero > 0)
AND (YearInvBalZero = DATEPART(YYYY,@start))
AND (MonthInvBalZero = DATEPART(MM,@start))
AND (YearInvBalZero = DATEPART(YYYY,@end))
AND (MonthInvBalZero = DATEPART(MM,@end))
)
)
)
SELECT bb.team_id
,bb.specialist_id
,dd.Budget
,cc.team_name
,KEY1
,CustomText01
,CASE WHEN RowNumber = 1 THEN SubTotal ELSE 0 END as SubTotal
FROM InvoicedAndPaid as aa
join SalesReporting.dbo.team_members as bb
on rtrim(aa.CustomText01) = rtrim(bb.specialist_name)
join SalesReporting.dbo.team_master as cc
on bb.team_id = cc.team_id
join SalesReporting.dbo.sales_goals as dd
on bb.specialist_id = dd.specialist_id
WHERE dd.time_span LIKE 'M%'
AND dd.month = DATENAME(MONTH,@end)
AND dd.Org = aa.KEY1
AND cc.team_name in (@team)
AND dd.period_no = DATEPART(MM,@end)
ORDER BY team_name, CustomText01
Это немного помогает? Я стараюсь избегать хранимых процедур, потому что я довольно новичок в SSRS и SQL Server.