#reporting-services #ssrs-2008
#службы отчетов #ssrs-2008
Вопрос:
Я получил эту ошибку, когда пытался выполнить инструкцию select в текстовом поле в SSRS. Итак, по сути, я пытаюсь вернуть поле, которого нет в данном наборе данных. Итак, я запустил подзапрос, который возвращает значение, используя существующий набор данных в качестве контейнера.
Но я не знаю, как представить это возвращаемое значение в поле выражения. Поскольку поле выражения возвращает значение, которое находится в предоставленном наборе данных.
Я предоставил SQL, который я написал.
Любые предложения были бы высоко оценены.
Мое намерение состоит в том, чтобы вернуть значение «commentText». Однако набор данных не содержит никакого поля commenttext, но содержит поле EmpID. Итак, я создал приведенный ниже подзапрос, который выводит текст комментария из таблицы LaborDtlComment, и когда он совпадает с EmpID в наборе данных отчета, он возвращает значение commentText.
select [CommentReturnQuery].[LaborDtlComment_CommentText] as [LaborDtlComment_CommentText],
[EmpBasic].[EmpID] as [EmpBasic_EmpID]
from Erp.EmpBasic as EmpBasic
inner join (select [LaborDtlComment].[CommentText] as [LaborDtlComment_CommentText],
[LaborDtl].[EmployeeNum] as [LaborDtl_EmployeeNum]
from Erp.LaborDtlComment as LaborDtlComment
inner join Erp.LaborDtl as LaborDtl on LaborDtlComment.Company = LaborDtl.Company
and LaborDtlComment.LaborHedSeq = LaborDtl.LaborHedSeq
and LaborDtlComment.LaborDtlSeq = LaborDtl.LaborDtlSeq) as CommentReturnQuery
on EmpBasic.EmpID = CommentReturnQuery.LaborDtl_EmployeeNum
Моя цель — отобразить значение commentText в текстовом поле. Поэтому я создам
текстовое поле, и оно будет содержать SQL, который я написал. Кто-нибудь может помочь
я в данном случае?
Комментарии:
1. Вы уверены, что запрос правильно работает в SSMS? Вы должны иметь возможность просто добавить
LaborDtlComment_CommentText
в текстовое поле, как обычно. Единственный способ, которым я могу увидеть сбой, — это какая-то проблема с запросом.2. Привет, Стив, запрос выполняется отлично. Оно возвращает результаты, которые я ожидаю. Я выполнил запрос в Epicor, встроенном в SQL, под названием BAQ. Но мне нужен этот запрос в отчете, который экспортируется из Epicor как SSRS (набор данных фиксирован). Я могу выполнить только некоторый ограниченный запрос, используя набор данных, который находится в экспортированном отчете. Таким образом, набор данных является фиксированным. Если в наборе данных нет какого-либо поля, которое мне требуется отобразить в отчете (настройка), тогда я должен написать запрос такого типа, чтобы вывести значение поля из другого подзапроса и связать его с существующим набором данных, чтобы получить значение поля.
3. ОБНОВЛЕНИЕ: значение поля теперь не показывает никакой ошибки. Однако оно напрямую отображает SQL-запрос вместо значения, возвращаемого SQL. Любые предложения приветствуются. Я очень разочарован, поскольку я должен отправить этот отчет в этот понедельник: (
4. Ну, невозможно вызвать запрос в текстовом поле, если это то, что вы пытаетесь сделать. Это могло бы быть проще, если бы вы могли предоставить некоторые примеры данных и общее представление о структуре. Все, что я действительно могу сделать, это строить предположения, не вдаваясь в подробности.
5. ПРИВЕТ @Steve-o169, я прикрепил сюда 3 фотографии отчета.
Ответ №1:
Возможно, проще использовать функцию SSRS lookup (одиночная пара от 1 до 1) или lookupset (от нескольких от 1 до многих).справочная ссылка Microsoft
Вам нужно будет создать запрос / набор данных, чтобы вернуть текст комментария из таблицы LaborDtlComment с EmpID
Комментарии:
1. Привет, приятель, спасибо за твое предложение. Мой текущий запрос фактически возвращает текст комментария из таблицы LaborDtlComment с идентификатором EmpID. Единственная проблема в том, что я не уверен, как поместить их в текстовое поле, в котором будет отображаться значение. Например, я создал новое текстовое поле. В поле Выражение значения, если я ввожу приведенный выше запрос, он показывает мне ошибку, о которой я упоминал. Что касается поиска, поскольку у меня есть только один набор данных, который не содержит commentText, вот почему я не могу использовать поиск. Знаете ли вы, как использовать оператор select в текстовом поле для возврата значения? Заранее спасибо