我在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代码,但是我需要知道两件事-
如果能得到一些建议,将不胜感激。谢谢
答案 0 :(得分:0)
SSRS使用数据集从数据库获取数据,并且数据集中的每个字段都可以显示在报表上。要将字段添加到数据集,必须由基础数据集查询返回它。查看数据集属性并查看查询。如果格式为“从表中选择a,b,c”,则将所需的字段添加到列列表中(a,b,c等)。如果它是存储过程,请找到可以编辑该过程以包括您的缺失字段的人。完成此操作后,刷新数据集的字段列表。您的新字段现在应该在报告中可用。当然,如果您破坏了数据集的sql,则需要找到知道基础数据库的人来帮助您。