【问题标题】:calculate group count, sum for a given date using mysql使用mysql计算给定日期的组计数和总和
【发布时间】:2012-12-30 15:18:21
【问题描述】:

我有一个存储发票数据的表。一旦付款is_paid 将被标记为 1

所以我要做的是获取每个用户在给定日期的所有未付发票(where is_paid =0),以及每个员工的总未付金额和该期间的未付发票计数

SELECT
              receivable.amount,
              receivable.admission,
receivable.grouped,
              receivable.month,
              emp.name
            FROM
              receivable JOIN students ON receivable.emp_id = emp.id
where receivable.is_paid='0' 
group by receivable.emp_id
ORDER BY CAST(receivable.grouped AS UNSIGNED ) , receivable.grouped

如何更改上述代码以计算给定期间的待处理发票数量、每个用户的待处理金额总和以及该期间的分组总数(用户输入日期,因此需要显示所有记录之前包括那个日期)

下面是报告结构

任何帮助将不胜感激

【问题讨论】:

  • 您能否澄清应收表中的groupedadmissionmonth 是什么?

标签: mysql sql


【解决方案1】:

猜测month 指的是本月的第一天——如果你能澄清这一点,我可以写出更准确的东西。本质上,您需要使用 SUM 和 COUNT 聚合函数,并声明要作为 GROUP BY 子句的一部分返回的所有其他列:

SELECT
  receivable.emp_id,
  emp.name,
  receivable.grouped,
  receivable.month,
  SUM(receivable.amount) as totalAmount
  COUNT(*) as totalCount
FROM receivable 
JOIN emp ON receivable.emp_id = emp.id
WHERE receivable.is_paid='0'
  AND receivable.month = '2013-01-01'
GROUP BY receivable.emp_id, emp.name, receivable.grouped, receivable.month
ORDER BY CAST(receivable.grouped AS UNSIGNED ), receivable.grouped

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-13
    • 2019-03-13
    • 2019-04-13
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多