Access 2007女士 - 可以对报告进行排序或分组,但不能同时对两者进行排序或分组

时间:2013-10-01 19:52:57

标签: sorting ms-access ms-access-2007

我陷入困境,希望能在这里得到一些帮助。我有一个查询从两个表和一个读取它的报告中提取信息。我的两个表是这样的:其中一个是联系人列表,其中包含电话号码,姓名和地址。另一张表是付费历史记录。 PhoneNumber字段是它们绑在一起的方式。 Contact表中没有重复的条目,但另一个表中每个电话号码有多个付费实例。

我的报告将他们分组在电话号码上,但我还需要按日期排序。我的日期字段标记为时间/日期,它位于付费表格中。我遇到的问题是我可以在PhoneNumber上分组或在Date字段上排序,但不能同时排序。当我将组设置为顶级时,它会忽略我在其下面设置的排序。如果我进行排序并将其拖动以使其成为顶级,则不会进行分组。当它没有组时,我会留下相同联系信息的多个实例...就像我为它所支付的每个日期获得一个新的列表一样,而我需要一个单独的联系人列表,每个付费实例到被分组在它下面。

这是我的查询SQL:

SELECT 
    tblContributorsLead.FirstName, 
    tblContributorsLead.LastName, 
    tblContributorsLead.Address1, 
    tblContributorsLead.ZipCode, 
    tblContributorsLead.CityName, 
    tblPledgesLead.PledgeAmountRecd, 
    tblPledgesLead.DateRecd, 
    tblPledgesLead.PhoneNumber, 
    tblPledgesLead.DispositionTime, 
    tblPledgesLead.Agent, 
    tblPledgesLead.CampaignName, 
    tblPledgesLead.Custom20
FROM 
    tblContributorsLead 
    INNER JOIN 
    tblPledgesLead 
        ON tblContributorsLead.PhoneNumber = tblPledgesLead.PhoneNumber
WHERE 
    (((tblPledgesLead.PledgeAmountRecd)>0) 
        AND ((tblPledgesLead.DateRecd) Is Not Null));

为什么我只能同时进行分组或排序?但不能同时进行分组?

编辑:http://icloudbackups.com/stripped.zip是我的数据库的副本。

1 个答案:

答案 0 :(得分:0)

我想我现在明白了你想要的东西 - 让最近日期的电话号码组显示在最顶层。要做到这一点,您需要为每个DateRecd确定最后一个(或者如果您需要,则为第一个)PhoneNumber

SELECT SortingAndGrouping.LastDate, SortingAndGrouping.PhoneNumber, tblPledgesLead.DateRecd
FROM (tblContributorsLead INNER JOIN tblPledgesLead ON 
  tblContributorsLead.PhoneNumber = tblPledgesLead.PhoneNumber) INNER JOIN 
  (SELECT CDate(Format(tblPledgesLead.DateRecd,"MM/DD/YYYY")) As LastDate, tblPledgesLead.PhoneNumber
    FROM tblContributorsLead INNER JOIN tblPledgesLead ON
      tblContributorsLead.PhoneNumber = tblPledgesLead.PhoneNumber
    ORDER BY tblPledgesLead.DateRecd DESC)  AS SortingAndGrouping ON
  tblContributorsLead.PhoneNumber = SortingAndGrouping.PhoneNumber
ORDER BY SortingAndGrouping.LastDate DESC , SortingAndGrouping.PhoneNumber, tblPledgesLead.DateRecd DESC;

您需要添加要显示的其他字段(为清楚起见,我将其删除),并让报告强制执行与此处相同的排序 - 为LastDate列创建一个组,然后为PhoneNumber创建一个组列,然后指定排序。