我尝试为d11.xblood
是按d11.xpid
分组的最小值的患者选择访问权限 - 其中d11.xcaccess_type
不是288,289或292.({ {1}}是按时间顺序排列的访问索引。)
d11.xblood
:患者ID(int)d11.xpid
:患者的独特时间顺序指数' accessses(int)d11.xblood
:访问的唯一标识符(int)我想为每个d11.xcaccess_type
报告一行,其中d11.xpid
是其各自d11.xblood
的最小值(初始访问权限)。此外,如果d11.xpid
的初始访问权限的d11.xpid
值为288,289或292,我想排除该行。
我在Select Expert中尝试了几种变体:
d11.xcaccess_type
这样可以正确选择具有初始访问权限的行,但会删除当前访问权限不在数组中的行。我只想消除初始访问不在数组中的行。我怎么能做到这一点?
样本表:
{d11.xblood} = Minimum({d11.xblood},{d11.xpid}) and
not ({d11.xcaccess_type} in [288, 289, 292])
示例所需的输出:
xpid xblood xcaccess_type
---- ------ -------------
1 98 400
1 49 300
1 152 288
2 33 288
2 155 300
2 70 400
3 40 300
3 45 400
请注意xpid xblood xcaccess_type
---- ------ -------------
1 49 300
3 40 300
不在输出中,因为xpid = 2
的最小值排除了xblood
。另请注意,即使xcaccess_type = 288
有xpid = 1
,因为xcaccess_type = 288
的{{1}}值较低,xblood
仍然包含xpid = 1
。
答案 0 :(得分:0)
如果您不想编写存储过程或自定义SQL来处理此问题,则可以添加另一个组。假设您最深的组(最接近详细信息部分的组)基于xpid
进行排序,您可以在该组中添加一个组,将xcaccess_type
从最低到最高排序。
取消新组的页眉和页脚,然后将此子句添加到详细信息部分:
({d11.xpid} = PREVIOUS({d11.xpid})
OR
({d11.xcaccess_type} in [288, 289, 292])
这应修改您的报告,以便只显示每人最低访问值的记录。如果最低访问值是三个禁用值之一,则不会显示xpid
的记录。