2016-08-24 56 views
2

我正在寻找突出显示NetSuite保存的搜索中的重复项的方法。重复项在名为“ACCOUNT”的列中填充了文本值。在NetSuite保存的搜索中突出显示重复的值

NetSuite允许使用精简版SQL Server将字段(列)添加到搜索中。它还允许使用相同的代码对整行进行条件高亮显示。但是,我没有看到一个明显的方法来比较数据行之间的值。

尽管可以在摘要报告中将重复项组合在一起,并以2或更多的计数进行标识,但我希望分别显示重复的行并突出显示每个重复项。

我发现的最接近的东西是个聪明的公式计算运行总计here

sum/* comment */({amount}) 
OVER(PARTITION BY {name} 
ORDER BY {internalid} 
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) 

我不知道是否有可能作为排序依据的域结果被检查的重复和适应这个代码来识别的变化行和上一行之间的“ACCOUNT”字段。

任何想法?谢谢!

+0

如果您不一定需要在不同行中显示重复项,只需按ACCOUNT列对结果进行分组,然后在附加列中获取每个组的结果计数,并突出显示该计数值是否大于1。 –

+0

@tt_emrah,是的,我想到了这一点,并在我的问题中提到它。我更感兴趣的是在单独的行上查找重复项的方法,这些方法可用于各种情况。必须有方法将当前行值与前一行值进行比较并检查匹配。然后,我可以按照该字段进行排序,以便任何匹配都将位于连续的行上。 – ChrisB

回答

1

此信息已被编辑。我已经把这个过程作为关于NetSuite的学习体验了。

原创 - 纯SQL的方式 - 不适合的NetSuite

是否是这样的满足您的需求?测试数据假定在id1和id2上查找重复项。 注意:这在NetSuite中不起作用,因为它支持有限的SQL函数。查看链接评论。

declare @table table (id1 int, id2 int, value int); 

insert @table values 
(1,1,11), 
(1,2,12), 
(1,3,13), 
(2,1,21), 
(2,2,22), 
(2,3,23), 
(1,3,1313); 
--select * from @table order by id1, id2; 

select t.*, 
     case when dups.id1 is not null then 1 else 0 end is_dup  --identify dups when there is a matching dup record 
from @table t 
left join ( --subquery to find duplicates 
     select id1, id2 
     from @table 
     group by id1, id2 
     having count(1) > 1 
     ) dups 
     on dups.id1 = t.id1 
     and dups.id2 = t.id2 
order by t.id1, t.id2; 

首先编辑 - NetSuite的目标,但在SQL。

这是一个基于问题中提供的示例可用语法的SQL测试,因为我没有NetSuite进行测试。这将使用类似的语法为每个重复行赋予一个大于1的值。 注意:这将给出适当的答案,但不适用于NetSuite。

select t.*, 
     sum(1) over (partition by id1, id2) 
from @table t 
order by t.id1, t.id2; 

其次编辑 - 工作NetSuite的版本

一些回来后,在这里提出的是,在NetSuite的兼容版本:

sum/* comment */(1) OVER(PARTITION BY {name}) 

这也给的值大于1在任何重复的行上。

说明

这通过求和包括在分区中的每个行的值1。分区列应该是你认为重复的东西。如果只有一列重复(例如用户ID),则按照上述方式使用。如果多列重复(例如名字,姓氏,城市),则在分区中使用逗号分隔列表。 SQL将基本上按分区对行进行分组,并在sum/* comment */(1)中将1加起来。问题中提供的示例总结了一个实际列。通过相加1,当分区中只有1个ID时,我们将得到值1。任何更高的是重复的。我想你可以称这个字段重复计数。

+0

对不起。我没有真正理解NetSuite的局限性,因此我没有可用于测试的内容。然而,我提供了一个选项2,它遵循了可用的语法...我无法测试它是否可以适应NetSuite ... – SMM

+0

已保存的搜索功能与标准SQL查询有很大不同。上面称为Saved Searches Explained的链接提供了基础知识。 – ChrisB

+0

可以使用选项2吗?它在结构上与您提供的示例类似。 '总和(1)结束(由id1,id2分区)' – SMM

相关问题