我的“客户”表上有一个门户网站。相关表格包含随时间更新的调查结果。对于客户端和类别的每个组合(相关表中的字段),我只希望门户显示最近收集的行。
Here is a link to a trivial example that illustrates the issue I'm trying to address。我在这个例子中有两个表(在ClientID上相关):
其中:
问题1我很难过:。
ShowInPortal应该在第3行(PKTable01 = 5),第4行(PKTable01 = 6)和第6行(PKTable01 = 4)中等于1。我不确定FM为什么将1Red和1Blue解释为同一类别,或者我只是误解了GetSummary函数的作用。
其中:
问题2我很难过:
我只希望门户网站中出现ShowInPortal值等于1的行。我尝试使用以下公式创建门户网站过滤器:表1获取摘要方法:: ShowInPortal = 1.但是,使用该过滤器会从门户网站中删除所有行。
非常感谢任何帮助。
答案 0 :(得分:1)
一种解决方案是使用ExecuteSQL来获取最大日期。这消除了对Summary函数和排序的需要,并按预期工作。建议将其作为数字返回,以避免日期格式出现任何问题。
GetAsTimestamp (
ExecuteSQL (
"SELECT DISTINCT COALESCE(MaxDate,'')
FROM Survey
WHERE ClientIDCategory = ? "
; "" ; "";ClientIDCategory )
)
此外,您需要将ShowInPortal字段更改为未存储的calc字段,其中包含:
If ( GetAsNumber(Date) = MaxDateGroupSQL ; 1 ; 0 )
然后在此字段上过滤门户网站。
如果需要,我可以发送样本文件。