如果数据集不包含值,如何在SSRS的“文本”字段中获取数据?

时间:2019-03-28 02:27:09

标签: sql reporting-services

我在SSRS中有四个数据集。它们低于-

POHeader- Company,PONum PODetail-公司,PONum,POLine PORel-公司,JobNum,POLine,PONum,ProjectID JobHead-公司,JobCOde,JobNum,PersonID,ProjectID

POHeader中有一个文本字段(项目负责人),我要在其中显示人员ID(项目负责人姓名)。但是,POHeader不包含任何PersonID字段。我正在考虑的一种方式是关联POHeader和PORel表,这些表将与PONum匹配并返回JobNum,而Returned JobNUm将与JobHead.JobNum匹配。

如果它们匹配,则将返回PersonID,该ID将显示在POHeader的文本字段(项目负责人)中。

但是,我对SQL的经验很少。如果有人可以在这方面帮助我,那将是很好的。

LOOKUP函数可以在这里解决,但是将一个返回值与其他数据的现有值进行比较似乎对我来说很困难。

关于SQL代码的更新-

="SELECT
    [PlannerID].[JobHead_PersonID] as [JobHead_PersonID]
from  (select 
    [POHeader].[PONum] as [POHeader_PONum],
     [JobHead].[PersonID] as [JobHead_PersonID],
    [JobHead].[JobNum] as [JobHead_JobNum]
from Erp.POHeader as POHeader
 inner join Erp.PODetail as PODetail on 
    POHeader.Company = PODetail.Company
    and POHeader.PONum = PODetail.PONUM
inner join Erp.PORel as PORel on 
    PODetail.Company = PORel.Company
    and PODetail.PONUM = PORel.PONum
    and PODetail.POLine = PORel.POLine
inner join Erp.JobHead as JobHead on 
    PORel.Company = JobHead.Company
    and PORel.JobNum = JobHead.JobNum)  as PlannerID
  right outer join Erp.POHeader as POHeader1 on 
    POHeader1.PONum = PlannerID.POHeader_PONum 
    POHeader.Company = PODetail.Company
     and POHeader.PONum = PODetail.PONUM
inner join Erp.PORel as PORel on 
   PODetail.Company = PORel.Company
    and PODetail.PONUM = PORel.PONum
   and PODetail.POLine = PORel.POLine
 inner join Erp.JobHead as JobHead on 
    PORel.Company = JobHead.Company
    and PORel.JobNum = JobHead.JobNum)  as PlannerID
right outer join Erp.POHeader as POHeader1 on 
    POHeader1.PONum = PlannerID.POHeader_PONum"

我编写的用于返回PersonID的SQL代码,但是我需要知道两件事-

  1. 该子查询放在哪里?
  2. 如何使用表达式从“项目负责人”文本字段中的子查询返回值?

如果能得到一些建议,将不胜感激。谢谢

1 个答案:

答案 0 :(得分:0)

SSRS使用数据集从数据库获取数据,并且数据集中的每个字段都可以显示在报表上。要将字段添加到数据集,必须由基础数据集查询返回它。查看数据集属性并查看查询。如果格式为“从表中选择a,b,c”,则将所需的字段添加到列列表中(a,b,c等)。如果它是存储过程,请找到可以编辑该过程以包括您的缺失字段的人。完成此操作后,刷新数据集的字段列表。您的新字段现在应该在报告中可用。当然,如果您破坏了数据集的sql,则需要找到知道基础数据库的人来帮助您。