Commit a08a576e8a1a9ecf1699d11ed7e8edeac6fe3496
1 parent
d5374a53
refactor: 优化营销活动开单统计查询,直接从主表查询
- 开单统计改为直接从lq_kd_kdjlb主表查询 - 使用EXISTS子查询判断是否包含活动品项 - 开单金额使用sfyj字段(实付业绩),欠款金额使用qk字段 - 提高查询效率,避免JOIN导致的重复统计
Showing
1 changed file
with
13 additions
and
7 deletions
netcore/src/Modularity/Extend/NCC.Extend/LqPackageInfoService.cs
| ... | ... | @@ -652,17 +652,23 @@ namespace NCC.Extend.LqPackageInfo |
| 652 | 652 | } |
| 653 | 653 | |
| 654 | 654 | // 6. 开单统计 |
| 655 | + // 直接从开单主表查询,通过子查询判断是否包含活动品项 | |
| 655 | 656 | var billingSql = $@" |
| 656 | 657 | SELECT |
| 657 | 658 | COUNT(DISTINCT kd.F_Id) as billing_count, |
| 658 | - SUM(CAST(px.F_ActualPrice AS DECIMAL(18,2))) as billing_amount, | |
| 659 | + SUM(CAST(kd.sfyj AS DECIMAL(18,2))) as billing_amount, | |
| 659 | 660 | SUM(CAST(kd.qk AS DECIMAL(18,2))) as debt_amount |
| 660 | - FROM lq_kd_pxmx px | |
| 661 | - LEFT JOIN lq_kd_kdjlb kd ON px.glkdbh = kd.F_Id | |
| 662 | - WHERE px.F_IsEffective = 1 | |
| 663 | - {itemIdsFilter} | |
| 664 | - AND px.yjsj >= '{startTime:yyyy-MM-dd HH:mm:ss}' | |
| 665 | - AND px.yjsj <= '{endTime:yyyy-MM-dd HH:mm:ss}' | |
| 661 | + FROM lq_kd_kdjlb kd | |
| 662 | + WHERE kd.F_IsEffective = 1 | |
| 663 | + AND EXISTS ( | |
| 664 | + SELECT 1 | |
| 665 | + FROM lq_kd_pxmx px | |
| 666 | + WHERE px.glkdbh = kd.F_Id | |
| 667 | + AND px.F_IsEffective = 1 | |
| 668 | + {itemIdsFilter} | |
| 669 | + AND px.yjsj >= '{startTime:yyyy-MM-dd HH:mm:ss}' | |
| 670 | + AND px.yjsj <= '{endTime:yyyy-MM-dd HH:mm:ss}' | |
| 671 | + ) | |
| 666 | 672 | {storeFilter}"; |
| 667 | 673 | |
| 668 | 674 | var billingData = await _db.Ado.SqlQueryAsync<dynamic>(billingSql); | ... | ... |