2015-12-31 5 views
2

Я довольно новичок в кодировании в SQL и использовании SSRS, поэтому я не знаю, действительно ли это должно быть исправлено в моем запросе или если есть простой ответ на стороне SSRS. У меня есть простой запрос, который я ввел в SSRS и добавил матрицу для просмотра данных. В финальной строке «Всего» я ​​пытаюсь добавить некоторые дополнительные суммы, такие как процент, основанный на данных в определенном столбце. Вот мой запрос:Как получить процент в матрице SSRS

SELECT 
     ADV.Account 
     ADV.City 
     ADV.LocationID 
     NUR.QueryID 
     NUR.Response 
FROM ADV.Visits ADV 
LEFT JOIN NUR.Responses NUR ON (NUR.VisitID = ADV.VisitID AND 
            NUR.SourceID = ADV.SourceID) 
WHERE NUR.QueryID = '1' AND 
NUR.DateTime BETWEEN "x" AND "y" AND 
ADV.LocationID IN ('1stFloor', '2ndFloor', 'ICU') 

Вот пример моих ответов

AccountNumber City LocationID QueryID Response 
12345   JAMESTOWN ICU   1  Y 
13254   JAMESTOWN ICU   1  N 
13584   SIMCITY 1stFloor  1  Y 
18789   JAMESTOWN 1stFloor  1  N 
45678   JAMESTOWN 1stFloor  1  Y 
56789   CITYSCAPE 1stFloor  1  Y 
48971   JAMESTOWN 1stFloor  1  Y 
457895  CITYSCAPE 1stFloor  1  Y 

Ниже то, что матрица выглядит в SSRS. У меня есть сумма, основанная на ответах Y (Да) или N (Нет), и полной сумме внизу. Теперь я хочу (в красной рамке) поставить выражение, которое даст мне процент ответов N. Я пробовал это несколько десятков способов, включая добавление отдельной таблицы для выполнения выражения, добавление двух разных наборов данных, один ключ по ответам Y и один на N и помещение их в отдельные матрицы, а затем попытки выполнить арифметику в третьей таблицы, ссылаясь либо на ReportItems! TextBox.Value, либо на собственные значения, но я продолжаю получать множество ошибок.

enter image description here

Как я изначально говорил, я не знаю, если это мой запрос, который нуждается в редактировании, выражение SSRS, что я просто не могу получить правильный, или оба. Но ЛЮБАЯ помощь была бы оценена! Я использую SQLServer2008 (запись из Microsoft SQL Server Management Studio) и ReportBuilder3.0.

ответ

2

Вы можете поместить это в свой набор результатов в sql и просто использовать =MAX(myPercentCalc!Value,"myDataset"),, однако я бы попытался использовать поле calc для этого. Вычисляемые поля могут быть добавлены к набору данных через IDE, где список наборов данных полей просто добавить новый и значение, установленное как выражение, так что вы могли бы сделать CALCNCount и установить выражение:

=IIF(myYNField!Value="N",1,0) 

Тогда просто используйте SUM(CALCNCount!Value) в процентах calc.

+0

Помните, где я новичок? :-) Я смог вычислить поле (которое я творчески назвал «CalculatedField» и установил значение в качестве выражения, которое вы дали, но в этот момент я довольно потерян. – mslhrt

+2

Значение будет фактически полем в вашем наборе данных. Таким образом, для каждой записи в вашем datset выражение будет оцениваться. Оттуда вы используете вычисляемое поле, как и другие поля, вы делаете агрегированные вычисления, такие как сумма, счет, макс и мин. Вероятно, вам нужно разместить выражение, которое использует ваши calc field SUMMED, деленное на COUNT записей в вашем наборе данных. SUM (Поле! Значение, «DatasetName») будет применяться там, где SUM if для всех значений в вашем наборе данных DataSetName. –

+0

Спасибо, мне потребовалось немного времени работайте, но теперь это имеет смысл, и это сработало! Как я никогда не сталкивался с Расчетными полями? Они определенно будут моим спасителем с этого момента. Теперь, когда он щелкнул в моем мозгу, ваш оригинальный ответ прекрасен. Еще раз спасибо! – mslhrt

Смежные вопросы