簡體   English   中英

過濾水晶報告中的分組記錄

[英]Filtering grouped records in crystal reports

我有一個問題,我不確定如何克服。 我需要根據組內的字段過濾水晶報表中的我的組。 不僅如此,我還需要根據同一組中此字段中是否存在兩個不同的值來過濾組。 例如,假設我有一個問題表,並為理事會投票。 在包含問題名稱和投票的問題上,每個投票有一個條目(是,否或棄權)。 我將按照問題名稱對表進行分組,並且我想過濾組以僅顯示在是和否之間進行投票分割的問題(即沒有棄權而不是一致)。 我該怎么做呢?

您要加入到分組頂層的數據需要預先聚合,以便顯示哪些投票有多個不同的回復。 無論您的后端數據源是什么,您都需要這樣做。 如果我在SQL中這樣做,例如,給定表:

create table dbo.Issues (
IssueID int identity(1,1) not null ,
constraint pkc_Issues primary key clustered ( IssueID ) ,
IssueText varchar(1000) )

--Note - not putting anything unique on VoterName because there may be 2 Joe Blows in the voter population.
create table dbo.Voters (
VoterID int identity(1,1) not null ,
constraint pkc_Voters primary key clustered ( VoterID ) ,
VoterName varchar(512) not null ) )

create table dbo.Votes (
VoteID int identity(1,1) not null ,
constraint pkn_Votes primary key nonclustered ( VoteID ) ,
VoterID int not null ,
constraint fk_VoterID@Votes foreign key ( VoterID ) references dbo.Voters ( VoterID ) ,
IssueID int not null ,
constraint fk_IssueID@Votes foreign key ( IssueID ) references dbo.Issues ( IssueID ) ,
constraint uci_IssueID_VoterID@Votes unique clustered ( IssueID , VoterID ) ,
VoteResponse varchar(16) null )

我會使用多個步驟來提取數據(但如果您認為更容易理解,可以隨意做子查詢):

select IssueID , Count(VoteResponse) as ResponseCount
into #hasMultiple from (select distinct IssueID , VoteResponse from Votes)

然后我再加入到那里,以反饋給Crystal:

select dbo.Issues.IssueID ,
dbo.Issues.IssueText ,
cast(case when #hasMultiple.ResponseCount > 1 then 1 else 0 end as bit) as HasMultiple ,
dbo.Votes.VoteID ,
dbo.Votes.VoterID ,
dbo.Votes.VoteResponse ,
dbo.Voters.VoterName
from dbo.Issues
inner join dbo.Votes
on dbo.Issues.IssueID = dbo.Votes.IssueID
left join dbo.Voters
on dbo.Votes.VoterID = dbo.Voters.VoterID
left join #hasMultiple
on dbo.Issues.IssueID = #hasMultiple.IssueID

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM