2016-04-13 14 views
1

私はどのように克服するか分からないという問題があります。私はグループ内のフィールドに基づいてクリスタルレポートの私のグループをフィルタリングする必要があります。同じグループ内のこのフィールドに2つの異なる値がある場合に基づいてグループをフィルタリングする必要があるだけでなく、たとえば、議会の議題と票があるとします。問題の名前と投票のキャスト(はい、いいえ、または棄権のいずれか)を含む問題に関する投票につき1つのエントリがあります。問題の名前で表をグループ化し、投票を「はい」と「いいえ」の間で分割した問題のみを表示するようにグループをフィルタリングしたいとします(つまり、棄権と満場一致ではありません)。これをどうやって行うのですか?結晶レポートのグループ化されたレコードをフィルタリングする

+0

あなたがもし他の条件との2式を作成し、あなたが投稿する必要があります – Siva

+0

あなたの要件ごとに詳細やフッターの両方に配置する必要がありますコードあなたの質問の体の一部としてすでに試してみました。 – ManoDestra

答えて

0

グループ化の最上位レベルに入力しているデータは、どのVotesが複数の異なる応答を表示するかを事前に集計する必要があります。バックエンドデータソースが何であれ、これを行う必要があります。

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 [email protected] foreign key (VoterID) references dbo.Voters (VoterID) , 
IssueID int not null , 
constraint [email protected] foreign key (IssueID) references dbo.Issues (IssueID) , 
constraint [email protected] unique clustered (IssueID , VoterID) , 
VoteResponse varchar(16) null) 

は、私は複数のステップを使用してデータをプル(しかし、あなたはそれがより理解しやすいと思う場合、サブクエリを行う気軽に)したい::

私はSQLでそれを行うとしたら、例えば、テーブルを与えられました
select IssueID , Count(VoteResponse) as ResponseCount 
into #hasMultiple from (select distinct IssueID , VoteResponse from Votes) 

私は、クリスタルに供給するために、戻ってそれに参加したい:

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 
関連する問題