我需要在记录集中合并成对的相邻记录。应用GroupBy可以使我对结果有所了解,但是效果却不佳-合并了无效对。
我的GroupBy键包含3个Attrs:
这足以确定行的唯一对,但我也可能有实例,其中“ ItemNo” = 0(由于我的客户数据中有孔/空值)。数据中没有其他机会唯一地标识记录。我的问题:部门/区域可能有许多“ 0”项目编号。
我尝试添加条件“ ItemNo <> 0”,但现在结果是缺少这些行。我需要它们,只是不要包含在GroupBy中。
说明数据:
Dept Area ItemNo Desc Attr1 Attr2
10 1001 0 Glove A 12 $1.00
10 1001 0 Suture 3 $10.00
10 1001 0 Glove B 123 $3.456
10 1001 0 Forceps 11 $123.45
10 1001 12345 Glove 11 $110.99
10 1001 12345 Glove 99 $220.00
10 1001 23456 Catheter 33 $55.12
10 1001 23456 Catheter 66 $99.99
在上面的示例中,我不想对前4行中的任何一行进行分组/求和,但我确实希望合并后2对行中的每对(即,抓取Desc的第1个,Attr1的最大和Attr2之和)。
问题:我是否可以有条件地执行此GroupBy来从合并操作中忽略ItemNo = 0的所有行(Sum,First,max等),但是将记录保留在最终结果中?
在我的示例中,我期望结果中有6行,而我目前看到的是3行。
有什么建议吗?
答案 0 :(得分:0)
可能不是最佳选择,但确实可以达到预期的效果:
将查询分为两部分-
1)使用项目编号<> 0的GroupBy查询
2)选择ItemNo = 0的查询
然后,UNION将上述2个结果放回一起。