Reporting services SSR为每个组的distint客户查找类别计数,挑战

Reporting services SSR为每个组的distint客户查找类别计数,挑战,reporting-services,ssrs-2012,Reporting Services,Ssrs 2012,我试图为每个供应商的不同客户获取每个年龄类别的计数,这里有一个大问题。我能够获得正确的客户数量,但无法获得成人/高级类别的正确细分。您是否认为可以在rdl内部实现,因为我真的无法触及现有的数据集,而这些数据集是我的图片右侧的简单细节。 选择“代理100”提供、“1111”客户ID、“成人”猫、“2019-1-1”服务日期联盟 选择“代理100”提供、“1111”客户ID、“成人”猫、“2019-2-2”服务日期联盟 选择“代理100”提供、“1111”客户ID、“成人”猫、“2019-3-3”服

我试图为每个供应商的不同客户获取每个年龄类别的计数,这里有一个大问题。我能够获得正确的客户数量,但无法获得成人/高级类别的正确细分。您是否认为可以在rdl内部实现,因为我真的无法触及现有的数据集,而这些数据集是我的图片右侧的简单细节。 选择“代理100”提供、“1111”客户ID、“成人”猫、“2019-1-1”服务日期联盟 选择“代理100”提供、“1111”客户ID、“成人”猫、“2019-2-2”服务日期联盟 选择“代理100”提供、“1111”客户ID、“成人”猫、“2019-3-3”服务日期联盟 选择“代理100”提供、“222”客户ID、“高级”类别、“2019-10-10”服务日期联盟 选择“代理100”提供、“333”客户ID、“成人”猫、“2019-11-11”服务日期联盟 选择“代理2”提供、“555”客户ID、“成人”猫、“2019-1-1”服务日期

也粘贴了整个测试rdl,只需更改数据源即可。非常感谢所有SSR的员工,所以他们的工作很好

<?xml version="1.0" encoding="utf-8"?>
<Report MustUnderstand="df" xmlns="http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" xmlns:df="http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition/defaultfontfamily">
  <df:DefaultFontFamily>Segoe UI</df:DefaultFontFamily>
  <AutoRefresh>0</AutoRefresh>
  <DataSources>
    <DataSource Name="DataSource1">
      <DataSourceReference>YourDataSource</DataSourceReference>
      <rd:SecurityType>None</rd:SecurityType>
      <rd:DataSourceID>9c15088f-a478-45ea-ad37-a0a289162354</rd:DataSourceID>
    </DataSource>
  </DataSources>
  <DataSets>
    <DataSet Name="DataSet1">
      <Query>
        <DataSourceName>DataSource1</DataSourceName>
        <CommandText>SELECT        'Agent100' AS ProvID, '1111' AS CustID, 'Adult' AS Cat, '2019-1-1' AS Serv_Date
UNION
SELECT        'Agent100' AS ProvID, '1111' AS CustID, 'Adult' AS Cat, '2019-2-2' AS Serv_Date
UNION
SELECT        'Agent100' AS ProvID, '1111' AS CustID, 'Adult' AS Cat, '2019-3-3' AS Serv_Date
UNION
SELECT        'Agent100' AS ProvID, '222' AS CustID, 'Senior' AS Cat, '2019-10-10' AS Serv_Date
UNION
SELECT        'Agent100' AS ProvID, '333' AS CustID, 'Adult' AS Cat, '2019-11-11' AS Serv_Date
UNION
SELECT        'Agent2' AS ProvID, '555' AS CustID, 'Adult' AS Cat, '2019-1-1' AS Serv_Date</CommandText>
      </Query>
      <Fields>
        <Field Name="ProvID">
          <DataField>ProvID</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
        <Field Name="CustID">
          <DataField>CustID</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
        <Field Name="Cat">
          <DataField>Cat</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
        <Field Name="Serv_Date">
          <DataField>Serv_Date</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
      </Fields>
    </DataSet>
  </DataSets>
  <ReportSections>
    <ReportSection>
      <Body>
        <ReportItems>
          <Tablix Name="Tablix2">
            <TablixBody>
              <TablixColumns>
                <TablixColumn>
                  <Width>0.6875in</Width>
                </TablixColumn>
              </TablixColumns>
              <TablixRows>
                <TablixRow>
                  <Height>0.25in</Height>
                  <TablixCells>
                    <TablixCell>
                      <CellContents>
                        <Textbox Name="Textbox6">
                          <CanGrow>true</CanGrow>
                          <KeepTogether>true</KeepTogether>
                          <Paragraphs>
                            <Paragraph>
                              <TextRuns>
                                <TextRun>
                                  <Value>Cat</Value>
                                  <Style>
                                    <Color>White</Color>
                                  </Style>
                                </TextRun>
                              </TextRuns>
                              <Style />
                            </Paragraph>
                          </Paragraphs>
                          <rd:DefaultName>Textbox5</rd:DefaultName>
                          <Style>
                            <Border>
                              <Color>LightGrey</Color>
                              <Style>Solid</Style>
                            </Border>
                            <BackgroundColor>Gray</BackgroundColor>
                            <PaddingLeft>2pt</PaddingLeft>
                            <PaddingRight>2pt</PaddingRight>
                            <PaddingTop>2pt</PaddingTop>
                            <PaddingBottom>2pt</PaddingBottom>
                          </Style>
                        </Textbox>
                      </CellContents>
                    </TablixCell>
                  </TablixCells>
                </TablixRow>
                <TablixRow>
                  <Height>0.25in</Height>
                  <TablixCells>
                    <TablixCell>
                      <CellContents>
                        <Textbox Name="Cat2">
                          <CanGrow>true</CanGrow>
                          <KeepTogether>true</KeepTogether>
                          <Paragraphs>
                            <Paragraph>
                              <TextRuns>
                                <TextRun>
                                  <Value>=Fields!Cat.Value</Value>
                                  <Style />
                                </TextRun>
                              </TextRuns>
                              <Style />
                            </Paragraph>
                          </Paragraphs>
                          <rd:DefaultName>Cat</rd:DefaultName>
                          <Style>
                            <Border>
                              <Color>LightGrey</Color>
                              <Style>Solid</Style>
                            </Border>
                            <PaddingLeft>2pt</PaddingLeft>
                            <PaddingRight>2pt</PaddingRight>
                            <PaddingTop>2pt</PaddingTop>
                            <PaddingBottom>2pt</PaddingBottom>
                          </Style>
                        </Textbox>
                      </CellContents>
                    </TablixCell>
                  </TablixCells>
                </TablixRow>
              </TablixRows>
            </TablixBody>
            <TablixColumnHierarchy>
              <TablixMembers>
                <TablixMember>
                  <Visibility>
                    <Hidden>true</Hidden>
                  </Visibility>
                </TablixMember>
              </TablixMembers>
            </TablixColumnHierarchy>
            <TablixRowHierarchy>
              <TablixMembers>
                <TablixMember>
                  <TablixHeader>
                    <Size>1in</Size>
                    <CellContents>
                      <Textbox Name="Textbox19">
                        <CanGrow>true</CanGrow>
                        <KeepTogether>true</KeepTogether>
                        <Paragraphs>
                          <Paragraph>
                            <TextRuns>
                              <TextRun>
                                <Value>Prov ID</Value>
                                <Style>
                                  <Color>White</Color>
                                </Style>
                              </TextRun>
                            </TextRuns>
                            <Style />
                          </Paragraph>
                        </Paragraphs>
                        <rd:DefaultName>Textbox19</rd:DefaultName>
                        <Style>
                          <Border>
                            <Color>LightGrey</Color>
                            <Style>Solid</Style>
                          </Border>
                          <BackgroundColor>DarkBlue</BackgroundColor>
                          <PaddingLeft>2pt</PaddingLeft>
                          <PaddingRight>2pt</PaddingRight>
                          <PaddingTop>2pt</PaddingTop>
                          <PaddingBottom>2pt</PaddingBottom>
                        </Style>
                      </Textbox>
                    </CellContents>
                  </TablixHeader>
                  <TablixMembers>
                    <TablixMember>
                      <TablixHeader>
                        <Size>1in</Size>
                        <CellContents>
                          <Textbox Name="Textbox35">
                            <CanGrow>true</CanGrow>
                            <KeepTogether>true</KeepTogether>
                            <Paragraphs>
                              <Paragraph>
                                <TextRuns>
                                  <TextRun>
                                    <Value>Adult</Value>
                                    <Style>
                                      <Color>White</Color>
                                    </Style>
                                  </TextRun>
                                </TextRuns>
                                <Style>
                                  <TextAlign>Center</TextAlign>
                                </Style>
                              </Paragraph>
                            </Paragraphs>
                            <rd:DefaultName>Textbox35</rd:DefaultName>
                            <Style>
                              <Border>
                                <Color>LightGrey</Color>
                                <Style>Solid</Style>
                              </Border>
                              <BackgroundColor>DarkBlue</BackgroundColor>
                              <PaddingLeft>2pt</PaddingLeft>
                              <PaddingRight>2pt</PaddingRight>
                              <PaddingTop>2pt</PaddingTop>
                              <PaddingBottom>2pt</PaddingBottom>
                            </Style>
                          </Textbox>
                        </CellContents>
                      </TablixHeader>
                      <TablixMembers>
                        <TablixMember>
                          <TablixHeader>
                            <Size>1in</Size>
                            <CellContents>
                              <Textbox Name="Textbox33">
                                <CanGrow>true</CanGrow>
                                <KeepTogether>true</KeepTogether>
                                <Paragraphs>
                                  <Paragraph>
                                    <TextRuns>
                                      <TextRun>
                                        <Value>Senior</Value>
                                        <Style>
                                          <Color>White</Color>
                                        </Style>
                                      </TextRun>
                                    </TextRuns>
                                    <Style>
                                      <TextAlign>Center</TextAlign>
                                    </Style>
                                  </Paragraph>
                                </Paragraphs>
                                <rd:DefaultName>Textbox33</rd:DefaultName>
                                <Style>
                                  <Border>
                                    <Color>LightGrey</Color>
                                    <Style>Solid</Style>
                                  </Border>
                                  <BackgroundColor>DarkBlue</BackgroundColor>
                                  <PaddingLeft>2pt</PaddingLeft>
                                  <PaddingRight>2pt</PaddingRight>
                                  <PaddingTop>2pt</PaddingTop>
                                  <PaddingBottom>2pt</PaddingBottom>
                                </Style>
                              </Textbox>
                            </CellContents>
                          </TablixHeader>
                          <TablixMembers>
                            <TablixMember>
                              <TablixHeader>
                                <Size>1in</Size>
                                <CellContents>
                                  <Textbox Name="Textbox37">
                                    <CanGrow>true</CanGrow>
                                    <KeepTogether>true</KeepTogether>
                                    <Paragraphs>
                                      <Paragraph>
                                        <TextRuns>
                                          <TextRun>
                                            <Value>Distinct Cust</Value>
                                            <Style>
                                              <Color>White</Color>
                                            </Style>
                                          </TextRun>
                                        </TextRuns>
                                        <Style>
                                          <TextAlign>Center</TextAlign>
                                        </Style>
                                      </Paragraph>
                                    </Paragraphs>
                                    <rd:DefaultName>Textbox37</rd:DefaultName>
                                    <Style>
                                      <Border>
                                        <Color>LightGrey</Color>
                                        <Style>Solid</Style>
                                      </Border>
                                      <BackgroundColor>DarkBlue</BackgroundColor>
                                      <PaddingLeft>2pt</PaddingLeft>
                                      <PaddingRight>2pt</PaddingRight>
                                      <PaddingTop>2pt</PaddingTop>
                                      <PaddingBottom>2pt</PaddingBottom>
                                    </Style>
                                  </Textbox>
                                </CellContents>
                              </TablixHeader>
                              <TablixMembers>
                                <TablixMember />
                              </TablixMembers>
                            </TablixMember>
                          </TablixMembers>
                        </TablixMember>
                      </TablixMembers>
                    </TablixMember>
                  </TablixMembers>
                  <KeepWithGroup>After</KeepWithGroup>
                </TablixMember>
                <TablixMember>
                  <Group Name="ProvID">
                    <GroupExpressions>
                      <GroupExpression>=Fields!ProvID.Value</GroupExpression>
                    </GroupExpressions>
                  </Group>
                  <SortExpressions>
                    <SortExpression>
                      <Value>=Fields!ProvID.Value</Value>
                    </SortExpression>
                  </SortExpressions>
                  <TablixHeader>
                    <Size>1in</Size>
                    <CellContents>
                      <Textbox Name="ProvID1">
                        <CanGrow>true</CanGrow>
                        <KeepTogether>true</KeepTogether>
                        <Paragraphs>
                          <Paragraph>
                            <TextRuns>
                              <TextRun>
                                <Value>=Fields!ProvID.Value</Value>
                                <Style />
                              </TextRun>
                            </TextRuns>
                            <Style />
                          </Paragraph>
                        </Paragraphs>
                        <rd:DefaultName>ProvID1</rd:DefaultName>
                        <Style>
                          <Border>
                            <Color>LightGrey</Color>
                            <Style>Solid</Style>
                          </Border>
                          <PaddingLeft>2pt</PaddingLeft>
                          <PaddingRight>2pt</PaddingRight>
                          <PaddingTop>2pt</PaddingTop>
                          <PaddingBottom>2pt</PaddingBottom>
                        </Style>
                      </Textbox>
                    </CellContents>
                  </TablixHeader>
                  <TablixMembers>
                    <TablixMember>
                      <TablixHeader>
                        <Size>1in</Size>
                        <CellContents>
                          <Textbox Name="Textbox36">
                            <CanGrow>true</CanGrow>
                            <KeepTogether>true</KeepTogether>
                            <Paragraphs>
                              <Paragraph>
                                <TextRuns>
                                  <TextRun>
                                    <Value>=Sum(Iif(Fields!Cat.Value="Adult",1,0))</Value>
                                    <Style />
                                  </TextRun>
                                </TextRuns>
                                <Style />
                              </Paragraph>
                            </Paragraphs>
                            <rd:DefaultName>Textbox36</rd:DefaultName>
                            <Style>
                              <Border>
                                <Color>LightGrey</Color>
                                <Style>Solid</Style>
                              </Border>
                              <PaddingLeft>2pt</PaddingLeft>
                              <PaddingRight>2pt</PaddingRight>
                              <PaddingTop>2pt</PaddingTop>
                              <PaddingBottom>2pt</PaddingBottom>
                            </Style>
                          </Textbox>
                        </CellContents>
                      </TablixHeader>
                      <TablixMembers>
                        <TablixMember>
                          <TablixHeader>
                            <Size>1in</Size>
                            <CellContents>
                              <Textbox Name="Textbox34">
                                <CanGrow>true</CanGrow>
                                <KeepTogether>true</KeepTogether>
                                <Paragraphs>
                                  <Paragraph>
                                    <TextRuns>
                                      <TextRun>
                                        <Value>=Sum(Iif(Fields!Cat.Value="Senior",1,0))</Value>
                                        <Style />
                                      </TextRun>
                                    </TextRuns>
                                    <Style />
                                  </Paragraph>
                                </Paragraphs>
                                <rd:DefaultName>Textbox34</rd:DefaultName>
                                <Style>
                                  <Border>
                                    <Color>LightGrey</Color>
                                    <Style>Solid</Style>
                                  </Border>
                                  <PaddingLeft>2pt</PaddingLeft>
                                  <PaddingRight>2pt</PaddingRight>
                                  <PaddingTop>2pt</PaddingTop>
                                  <PaddingBottom>2pt</PaddingBottom>
                                </Style>
                              </Textbox>
                            </CellContents>
                          </TablixHeader>
                          <TablixMembers>
                            <TablixMember>
                              <TablixHeader>
                                <Size>1in</Size>
                                <CellContents>
                                  <Textbox Name="Textbox38">
                                    <CanGrow>true</CanGrow>
                                    <KeepTogether>true</KeepTogether>
                                    <Paragraphs>
                                      <Paragraph>
                                        <TextRuns>
                                          <TextRun>
                                            <Value>=CountDistinct(Fields!CustID.Value)</Value>
                                            <Style />
                                          </TextRun>
                                        </TextRuns>
                                        <Style />
                                      </Paragraph>
                                    </Paragraphs>
                                    <rd:DefaultName>Textbox38</rd:DefaultName>
                                    <Style>
                                      <Border>
                                        <Color>LightGrey</Color>
                                        <Style>Solid</Style>
                                      </Border>
                                      <PaddingLeft>2pt</PaddingLeft>
                                      <PaddingRight>2pt</PaddingRight>
                                      <PaddingTop>2pt</PaddingTop>
                                      <PaddingBottom>2pt</PaddingBottom>
                                    </Style>
                                  </Textbox>
                                </CellContents>
                              </TablixHeader>
                              <TablixMembers>
                                <TablixMember />
                              </TablixMembers>
                            </TablixMember>
                          </TablixMembers>
                        </TablixMember>
                      </TablixMembers>
                    </TablixMember>
                  </TablixMembers>
                </TablixMember>
              </TablixMembers>
            </TablixRowHierarchy>
            <DataSetName>DataSet1</DataSetName>
            <Height>0.5in</Height>
            <Width>4.6875in</Width>
            <Style>
              <Border>
                <Style>None</Style>
              </Border>
            </Style>
          </Tablix>
        </ReportItems>
        <Height>0.5in</Height>
        <Style />
      </Body>
      <Width>4.6875in</Width>
      <Page>
        <LeftMargin>1in</LeftMargin>
        <RightMargin>1in</RightMargin>
        <TopMargin>1in</TopMargin>
        <BottomMargin>1in</BottomMargin>
        <Style />
      </Page>
    </ReportSection>
  </ReportSections>
  <ReportParametersLayout>
    <GridLayoutDefinition>
      <NumberOfColumns>4</NumberOfColumns>
      <NumberOfRows>2</NumberOfRows>
    </GridLayoutDefinition>
  </ReportParametersLayout>
  <rd:ReportUnitType>Inch</rd:ReportUnitType>
  <rd:ReportID>3e0536ce-aa9c-4d8f-afa8-3f0ed263e768</rd:ReportID>
</Report>

您需要使用矩阵,而不是表格。因为您已经有了一个好的数据集,所以这很容易

添加矩阵,将ProvID拖到行占位符,将Cat拖到列占位符

在数据占位符中,将表达式设置为

=CountDistinct(Fields!CustID.Value)
如果您需要第三列中的总计,请右键单击下面面板中的“Cat”列组,然后选择“添加总计=>After”

报告设计将如下所示,留给您原始的比较

渲染时,它看起来像这样


您需要使用矩阵,而不是表格。因为您已经有了一个好的数据集,所以这很容易

添加矩阵,将ProvID拖到行占位符,将Cat拖到列占位符

在数据占位符中,将表达式设置为

=CountDistinct(Fields!CustID.Value)
如果您需要第三列中的总计,请右键单击下面面板中的“Cat”列组,然后选择“添加总计=>After”

报告设计将如下所示,留给您原始的比较

渲染时,它看起来像这样


对于这个简单的情况,它应该可以工作,这基本上可以描述为sumdinct,如果您有其他列,并且希望保留表解决方案,您可以像这里一样向数据集中添加位逻辑

对于这个简单的情况,它应该可以工作,这基本上可以描述为sumdinct,如果您有其他列,并且希望保留表解决方案,您可以像下面这样向数据集中添加位逻辑

Tx much Alan and all Tx much Alan and all