【问题标题】:VS SR Report joining data from multiple Data sets?VS SR 报告连接来自多个数据集的数据?
【发布时间】:2019-10-02 09:29:55
【问题描述】:

想知道是否有人可以帮助我,我目前正在学习 SRSS 报告,并负责为教职员工和学生停车场制作一份付费和展示车辆登记报告,以显示他们是否已注册 P&D。我将报告布置为 3 个表格列;姓名、车号和车辆登记。我从我的数据集中列出的以下代码中获得了车辆编号和车辆登记信息,并带有一个参数来过滤出员工或学生是否支付和显示。但是,我很难将员工和学生姓名拉到一个姓名列中,因为它们是通过两个不同的数据集进行的。任何人都可以帮忙吗? TIA

**-- Pay & Display Carpark Details Dataset**
SELECT * FROM Carpark_Vehicles
WHERE VehicleCustNo IN (SELECT CustID FROM [dbo].[Carpark_Customer]
                        WHERE CarParkID IN (SELECT CarParkID FROM [dbo].[Carpark_CarPark]
                                            WHERE CTypeID IN ('PD', 'SPD')))
                        --and CTypeID IN (@Carpark_type))
**--Vehicle Details Dataset**
SELECT 
 Carpark_Vehicles.VehicleID
      ,Carpark_Vehicles.RegNo
    ,VehicleCustNo
 FROM
  Carpark_Vehicles
WHERE CarPark_Vehicles.RegNo = @RegNo

**--Staff details dataset**
SELECT
StaffDetails_StaffandLeaverDetails.StaffNumber
  ,StaffDetails_StaffandLeaverDetails.LastName
  ,StaffDetails_StaffandLeaverDetails.Name1
FROM
  StaffDetails_StaffandLeaverDetails 

**--Student details dataset**
SELECT
  Student_CurrentStudentDetails.StudentNumber
  ,Student_CurrentStudentDetails.StudentID
  ,Student_CurrentStudentDetails.LastName
  ,Student_CurrentStudentDetails.FirstName
FROM
  Student_CurrentStudentDetails

**--Carpark permit type (Pay & Display) parameter**
SELECT DISTINCT
CTypeID, CASE CTypeID WHEN 'abc' THEN 'Students' WHEN 'abc' THEN 'Staff' END AS Label
FROM
  Carpark_Customer
WHERE CTypeID IN ('abc', 'Abc')

【问题讨论】:

    标签: sql sql-server reporting-services ssrs-2012


    【解决方案1】:

    对于您的请求,我只是获取了一些示例数据。整个示例将为您提供如何实现最终结果的想法。

    注意:这只是向您展示如何实现它,您必须根据您的要求进行修改。

    来自 2 个不同表格的学生和教职员工信息

    来自另一个单独表格的注册信息

    选择学生作为参数时的最终结果

    选择人员作为参数时的最终结果

    现在我是怎么做到的?

    我对最终结果的设计

    SSRS 中最终结果表的行可见性表达式

    表达式如下

    =IIF(Parameters!ReportParameter1.Value=1,
    IIF(Isnothing(Lookup(Fields!PersonId.Value,Fields!PersonId.Value,Fields!Name.Value, "DSStudentInfo")),true,false),
    IIF(Isnothing(Lookup(Fields!PersonId.Value,Fields!PersonId.Value,Fields!Name.Value, "DSStaffInfo")),true,
    false)
    )
    

    名字列可见性

    第二列名称可见性

    名字数据值表达式

    =Lookup(Fields!PersonId.Value,Fields!PersonId.Value,Fields!Name.Value, "DSStudentInfo")
    

    第二个名字数据值表达式

    =Lookup(Fields!PersonId.Value,Fields!PersonId.Value,Fields!Name.Value, "DSStaffInfo")
    

    【讨论】:

    • 感谢 AnkUser 的所有帮助,非常感谢 :)
    • @sql-me 有帮助吗??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-07
    • 2013-12-23
    • 2014-01-16
    • 2018-11-11
    • 2011-12-25
    • 1970-01-01
    • 2017-03-16
    相关资源
    最近更新 更多