0

有人可以帮忙吗?

我正在使用 Microsoft Report Builder,并且想在没有数据进入表时添加一条消息,说明“无可用数据”。

每次我在属性中使用“NoRowsMessage”或在其中一行中使用 =CountRows() > 0 表达式时,它似乎都不起作用。我不断得到一个空行或空两行!而且消息根本没有出现。它就像空数据一样,这是没有意义的。如果我确保有真实数据通过它看起来很好。有人可以告诉我我做错了什么吗?

在此处输入图像描述 在此处输入图像描述

更新信息:

declare @MeetingSessionID varchar(500)
set @MeetingSessionID = '160165815460010151522-101523-4111510-14142220'

select distinct vl.originalChatSessionID
      ,vl.applicationUserID
      ,vl.pharmaID
      ,vl.UserName
      --,isnull(ph.FirstName,'') as 'First Name'
      --,isnull(ph.MiddleName,'') as 'Middle Name'
      --,isnull(ph.LastName,'') as 'Last Name'
      --,phm.CompanyName
      ,isnull(dr.Title,'') as 'Title'
      ,isnull(dr.FirstName,'') as 'First Name'
      ,isnull(dr.MiddleName, '') as 'Middle Name'
      ,isnull(dr.LastName, '') as 'Last Name'
      ,isnull(dr.Name, '') as 'Name'
      , null as 'Specialty'
from iclickphrDxvideolog vl
    --inner join iclickphrDxpharmacy ph
    --  on ph.pharmacyProfileID = vl.applicationUserID
    --inner join iclickphrDxpharmacy_Main phm
    --  on phm.pharmacyID = ph.PharmacyID
    inner join iclickphrDxdoctor dr
        on dr.DoctorID = vl.pharmaID


where vl.originalChatSessionID = @MeetingSessionID

因此,例如,我只想在表中查看中间名,仅此而已...但是该列是空的...我得到了两个空行...我希望它说“没有可用的数据”。我知道 chatSessionID 是什么带回了两行......但我需要有一些方法......从其他表中获取数据。

4

1 回答 1

1

我不确定我是否完全了解缺少实际表的情况,但您可以在数据集查询中模拟一些数据并使用它。

一个简单的版本可能看起来像(更改数据类型以适合您的真实数据)

DECLARE @iclickphrDxvideolog TABLE([Video Name] Varchar(100), [Video length] int, originalCharSessionID varchar(500), applicationUserID int, pharmaID int, UserName varchar(256))
INSERT INTO @iclickphrDxvideolog VALUES
('My first Video', 10, '160165815460010151522-101523-4111510-14142220', 1234, 1, 'Bob'),
('My second Video', 20, '160165815460010151522-101523-4111510-14142220', 3456, 1, 'Dave')

declare @MeetingSessionID varchar(500)
set @MeetingSessionID = '160165815460010151522-101523-4111510-14142220'

select distinct vl.originalChatSessionID
      ,vl.applicationUserID
      ,vl.pharmaID
      ,vl.UserName
      ,isnull(dr.Title,'') as 'Title'
      ,isnull(dr.FirstName,'') as 'First Name'
      ,isnull(dr.MiddleName, '') as 'Middle Name'
      ,isnull(dr.LastName, '') as 'Last Name'
      ,isnull(dr.Name, '') as 'Name'
      , null as 'Specialty'
from @iclickphrDxvideolog vl -- <= swapped out for table variable for testing
    inner join iclickphrDxdoctor dr
        on dr.DoctorID = vl.pharmaID
where vl.originalChatSessionID = @MeetingSessionID

如果您使用“160165815460010151522-101523-4111510-14142220”以外的会话 ID 进行测试,则应该返回 0 行。

于 2020-10-08T16:52:23.027 回答