计算小计和在找到的集合上,相同的值不同的字段 - FileMaker 12

时间:2013-03-12 20:06:20

标签: filemaker

很难想到一个好的头衔。

我有一张包含代理商和推荐人的表格。数据显示在按代理人排序的小计部分中。

当Agent =推荐时,很容易得到一个计数。

但是,按代理人排序时,是否可以在整个找到的集合中获取引荐计数?

例如,史密斯是10条记录的代理人。

史密斯也是8个唱片的推荐,3个史密斯是代理人,5个琼斯是代理人。

在小计部分,按代理排序,当Smith是代理和推荐时,我可以得到3。我怎么能把史密斯作为发现集中8条记录的Refferal的相同部分?

我在想可能是Execute SQL但是我不知道有足够的SQL写一个有意义的语句。或者我应该选择那个?

谢谢!

1 个答案:

答案 0 :(得分:0)

我不是100%明确你如何设置这个,但我会假设你只处理你提到的两个表 - 推荐和代理 - 而你的报告是基于Referrals表,它有两个相关字段:Referrer和Agent。

首先要意识到的是,如果你试图报告被推荐的一组推荐,由Agent代理,你就不能在史密斯的小学AND琼斯的小学中出现推荐记录......它是/或

我可以想出几种方法来制作您正在寻找的报告:

  1. 不是报告整个发现的集合,而是报告较小的发现集(按人),然后通过将每个单独的发现集报告相互附加来汇总您的报告。例如:创建一个脚本,该脚本可以找到所有使用Smith作为代理或引用者的引用,并且这将为您提供18(从您的示例)的已找到集(和计数);迭代所有代理,并从收集的数据中汇总报告。

  2. 创建推荐表的新子表,其中包含推荐人推荐人的每个实例的记录,以及推荐人代理的每个实例(但仅在与推荐人不同时 )...然后,从该表中报告。

  3. 正如您所说,这听起来好像可以使用ExecuteSQL命令完成。我不知道你在寻找什么样的输出,你的字段名称会有所不同(我使用“AgentName”,“agent”和“referrer”),但它会是这样的:

    Go To Layout [ "Agents" ]
    Show All
    Go To Record/Request [ First ]
    Loop
        Set Variable [ $ThisAgent ; AgentName & " referrals: " & Evaluate ( ExecuteSQL ( "SELECT 1 FROM Referrals WHERE ( agent LIKE 'SMITH' OR referrer LIKE 'SMITH')" ; "" ; "+" ) ) ]
        Set Variable [ $ReportText ; List ( $ReportText ; $ThisAgent ) ]
        Go To Record/Request [ Exit after last, Next ]
    End Loop
    set Variable [ $$MergeVariableForReportDisplay ; $ReportText ]