Crystal reports Crystal Reports-基于字段删除重复行 晶体报道席曦R2

Crystal reports Crystal Reports-基于字段删除重复行 晶体报道席曦R2,crystal-reports,Crystal Reports,我试图根据最早的时间戳,每个ID只捕获一行 例如: 身份证时间 17:00 19:00 2:11:00 2:11:30 会回来吗 身份证时间 17:00 2:11:00 我曾试图抑制重复项,但由于它正在查看多个字段而无法工作。我想知道我是否可以根据ID分组,然后及时排序,删除后面的条目 ***我想我可能已经解决了这个问题,通过转到section expert,选择Details,Suppress,然后添加函数:{LOG.id}=Next({LOG.id}) 在我标记为已回答之前,我很想听听关于这

我试图根据最早的时间戳,每个ID只捕获一行

例如:

身份证时间

17:00

19:00

2:11:00

2:11:30

会回来吗

身份证时间

17:00

2:11:00

我曾试图抑制重复项,但由于它正在查看多个字段而无法工作。我想知道我是否可以根据ID分组,然后及时排序,删除后面的条目

***我想我可能已经解决了这个问题,通过转到section expert,选择Details,Suppress,然后添加函数:{LOG.id}=Next({LOG.id})


在我标记为已回答之前,我很想听听关于这方面的任何其他意见。谢谢

如果您有权访问用于返回数据的查询/存储过程,您可以在那里进行分组,ala:

SELECT ID, MIN(Time) as Time 
FROM Table GROUP BY ID  

根据您的数据,如果您在数据源进行筛选,您可能会获得更好的结果,但如果不知道您报告的内容,则无法知道

如果您正在筛选报告中显示的内容,您可能会在网络上拖动大量数据,只是为了在报告中抑制这些数据。。为什么不从源头上过滤呢

在sql server中,您可以执行类似这样的前N个函数(包括测试数据)


我可以按ID分组,然后按时间排序。我曾试图在我的SQL查询中添加一个min,但这是一个非常复杂的查询(按照我的标准)。我在这里包含的部分只是其中的一小部分。感谢所有提示。

您不能在数据源中执行此操作吗?您的数据源是什么?只需按
id
分组,按时间排序,然后将值放入组标题(标题仅显示数据集中的第一行)。
create table t3 (id int, supplierId int, description varchar(max), value decimal(5,2), created datetime default getdate())

insert into t3 values 
(1, 1, 'test', 180.0, '20101001'),
(1, 1, 'test', 181.0, '20101003'),
(1, 1, 'test', 182.0, '20101002'),
(1, 2, 'test', 183.0, '20101005'),
(1, 2, 'test', 184.0, '20101002'),
(1, 2, 'test', 185.0, '20101001')


;with cte as 
(select 
      t.id
    , t.supplierId
    , t.description
    , t.value
    , t.created
    , rank() over (partition by t.supplierId order by t.created desc) as Position
from t3 t)
select * from cte where Position = 1