如何在Pervasive SQL中合并同一人员的两行计算结果并求和?
解决Pervasive SQL合并人员数据的问题
可以通过CASE表达式将N00和S00归为同一分组,同时处理销售人员编号的显示,实现求和合并的需求。修改后的查询语句如下:
SELECT SUM(amount) AS Actual, CASE WHEN salesman_number IN ('N00', 'S00') THEN 'S00,N00' ELSE salesman_number END AS Salesman_Number FROM gcg_7095_bookings WHERE prod_line IN ('01','03') AND salesman_number IN ('G00','M00','N00','S00','O00','T00') AND order_date >= '2023-01-01' GROUP BY CASE WHEN salesman_number IN ('N00', 'S00') THEN 'S00,N00' ELSE salesman_number END
语句说明:
- 分组逻辑:在
GROUP BY中用CASE把N00和S00映射成同一个标识(这里用'S00,N00'),让两行数据合并到同一组进行求和计算。 - 显示逻辑:SELECT里的CASE同步处理销售人员编号,合并后显示为'S00,N00',和期望结果一致。
- 其他人员的分组与显示逻辑保持原有规则不变。
执行该语句后,将得到如下结果:
| Actual | Salesman_Number |
|---|---|
| 284315.71 | G00 |
| 223959.78 | M00 |
| 373578.72 | O00 |
| 400546.92 | S00,N00 |
| 76325.80 | T00 |
内容的提问来源于stack exchange,提问作者SkylarPurifoy
相关产品推荐
相关产品推荐

