如何高效处理行数据?invoices与invoice_statuses表的统计需求问询
解决发票状态为query时的pending_reason统计需求
嘿,我来帮你搞定这个统计需求!首先咱们先明确下两张表的常见结构(如果和你的实际表结构有出入,你调整下字段名就行):
假设的表结构
invoices表
| invoice_id | 其他业务字段(比如金额、创建时间等) |
|---|---|
| 1 | ... |
| 2 | ... |
invoice_statuses表
| invoice_id | status | pending_reason |
|---|---|---|
| 1 | query | 缺少付款凭证 |
| 2 | query | 客户信息待核实 |
| 1 | paid | NULL |
实现统计的SQL语句
如果你的需求是统计每个pending_reason对应的发票数量,可以用下面的SQL:
SELECT is.pending_reason, COUNT(i.invoice_id) AS invoice_count FROM invoices i INNER JOIN invoice_statuses is ON i.invoice_id = is.invoice_id WHERE is.status = 'query' GROUP BY is.pending_reason;
要是你需要列出所有状态为query的发票及其对应的pending_reason(不做聚合统计),可以用这个:
SELECT i.invoice_id, is.pending_reason FROM invoices i INNER JOIN invoice_statuses is ON i.invoice_id = is.invoice_id WHERE is.status = 'query';
对应的结果集示例
聚合统计的结果
| pending_reason | invoice_count |
|---|---|
| 缺少付款凭证 | 1 |
| 客户信息待核实 | 1 |
明细查询的结果
| invoice_id | pending_reason |
|---|---|
| 1 | 缺少付款凭证 |
| 2 | 客户信息待核实 |
要是你的表结构或者需求有特殊情况(比如一个发票有多个query状态记录),随时调整字段或逻辑就行!
内容的提问来源于stack exchange,提问作者user3929758
相关产品推荐
相关产品推荐

