MSAccess-有条件的GroupBy?

时间:2018-09-24 15:30:56

标签: ms-access

我需要在记录集中合并成对的相邻记录。应用GroupBy可以使我对结果有所了解,但是效果却不佳-合并了无效对。

我的GroupBy键包含3个Attrs:

  1. 部门
  2. 面积
  3. 商品编号

这足以确定行的唯一对,但我也可能有实例,其中“ 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行。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

可能不是最佳选择,但确实可以达到预期的效果:

将查询分为两部分-

1)使用项目编号<> 0的GroupBy查询

2)选择ItemNo = 0的查询

然后,UNION将上述2个结果放回一起。