需要按日期对访问报告进行排序

时间:2013-10-04 07:10:10

标签: ms-access ms-access-2007

我有一份报告说我正在尝试排序,但实际上并不知道如何。我尝试了很多东西,但没有任何工作。

这是我的疑问:

SELECT [FirstName] & " " & [LastName] AS Contributor, PledgeAmountRecd, tblPledgesLead.PhoneNumber, FirstName, LastName, Address1, CityName, ZipCode, DateRecd, CCur([PledgeAmountRecd]) AS Pledge
FROM tblContributorsLead INNER JOIN tblPledgesLead ON tblContributorsLead.PhoneNumber=tblPledgesLead.PhoneNumber
ORDER BY [FirstName] & " " & [LastName], tblPledgesLead.DateRecd DESC;

基本上我需要报告根据最近的付款对每个贡献者进行排序。请注意,在此示例输出中,每个参与者都有一个付款历史列表,该列表从最近到最旧排序。总的来说,每个贡献者按照最近的付费日期顺序排列;即最近支付日期为2013年9月19日的每个人都会在一起,然后当它下降时,我们将在2013年9月18日作为最近的日期,依此类推。

Amanda Hugginkiss
5552224321
$50 9/19/2013

Johnny Appleseed
5552221234
$20 9/19/2013
$15 8/9/2013

Jake Thesnake
5552229876
$20 9/19/2013

Moe Noe
5552226789
$10 9/18/2013
$15 3/1/2013
$10 11/15/2012

Hann Solo
5552223434
$20 9/18/2013
$20 1/22/2013
$15 7/6/2012
$10 1/4/2012

目前输出如下:

Tom Smith
5552221111
$20 8/23/2013

Jim Jones
5552223333
$20 9/17/2013
$15 4/5/2013

Joe Blow
5552229999
$20 9/4/2013
$20 3/1/2013

Hector Gonzales
5552228888
$15 8/29/2013

正如您在当前输出中看到的那样,这些都是乱序的。最后,它们应该看起来像上面发布的第一个例子。

以下是我的数据库的精简副本:http://icloudbackups.com/s3.zip

2 个答案:

答案 0 :(得分:1)

以下是我将如何处理它:

我将根据[tblPledgesLead]表创建一个名为[Contribution_subreport]的报告。它将显示[PledgeAmountRecd]和[DateRecd],按[DateRecd]降序排序(最近一次)。

然后我创建一个名为[Contribution_report]的报告。它是Record Source的查询...

SELECT 
    tblContributorsLead.PhoneNumber, 
    Max([tblContributorsLead].[FirstName] & " " & [tblContributorsLead].[LastName]) AS Contributor, 
    Max(tblPledgesLead.DateRecd) AS MaxOfDateRecd 
FROM 
    tblContributorsLead 
    INNER JOIN 
    tblPledgesLead 
        ON tblContributorsLead.PhoneNumber = tblPledgesLead.PhoneNumber 
GROUP BY tblContributorsLead.PhoneNumber; 

...它将包含三个控件:

文字框:[贡献者]
文本框:[PhoneNumber]
子报告:[Contributions_subreport]

子报告将通过[PhoneNumber] ...

链接到主报告

subreport.png

...并按[MaxOfDateRecd](降序)和[贡献者]排序......

sort.png

最终报告如下:

result.png

答案 1 :(得分:0)

    SELECT [FirstName] & " " & [LastName] AS Contributor, PledgeAmountRecd,
           tblPledgesLead.PhoneNumber, FirstName, LastName, Address1, CityName,
           ZipCode, DateRecd, CCur([PledgeAmountRecd]) AS Pledge
    FROM tblContributorsLead 
         INNER JOIN tblPledgesLead 
                    ON tblContributorsLead.PhoneNumber=tblPledgesLead.PhoneNumber
    ORDER BY tblPledgesLead.DateRecd, Contributor DESC;

我希望这有效:)