0

我有一个小型 php 程序,用于显示每个工作人员的所有待处理金额,但我在汇总 acc_code 的组值时遇到了一些问题。

我已经解释了下面的系统。每个员工都分配有一个 acc_code。每个帐户代码有 40 – 50 名员工

例如:

admission  name   months  acc_code
==================================
001        test1  3       10A
002        test2  5       10A
006        test3  7       15B
008        test4  1       15A
011        test5  2       16C
051        test6  3       16A
012        test7  3       16A

预期输出:

 admission  name   months  acc_code
    ==================================
    001        test1  3       10A
    002        test2  5       10A
                    Total    USD 1000

    006        test3  7       15B
                    Total    USD 1800

    008        test4  1       15A
                    Total    USD 800

    011        test5  2       16C
                    Total    USD 1600

    051        test6  3       16A
    012        test7  3       16A
                     Total    USD 2700

每个员工都有一定数量的分配。我需要获取每个 acc_code 的总待处理金额

下面是我编写的代码,但我不确定如何获得每个 ac_code 的总计

select
  (period_diff(date_format(now(), '%Y%m'),
  date_format(month, '%Y%m'))) as months,
  pending.amount,
  pending.admission_numb,
  pending.month,
  staff.full_name,
  staff.acc_code
from
  pending join staff 
  on pending.admission_numb = staff.admission 
group by
  admission
order by
  staff.acc_code asc

任何帮助将不胜感激

4

3 回答 3

1
select
  staff.acc_code,
  SUM(pending.amount) pending_amount
from
  pending join staff 
  on pending.admission_numb = staff.admission 
group by
  staff.acc_code
order by
  staff.acc_code asc
于 2012-11-16T15:35:27.147 回答
0

您需要 GROUP BY acc_code 和 SUM 个。像这样的东西:

select SUM ((period_diff(date_format(now(), '%Y%m'), date_format(month, '%Y%m'))) as months),
pending.amount, pending.admission_numb, pending.month, staff.full_name, staff.acc_code
from pending join staff 
on pending.admission_numb = staff.admission 
group by staff.acc_code order by staff.acc_code asc

请注意,我没有查看您的查询。我刚刚添加了我认为你缺少的东西。当你试图为小组取得结果时,你需要员工的名字做什么?

于 2012-11-16T15:32:07.297 回答
0

这是一种获取 acc_code 总数的方法。

select
  (period_diff(date_format(now(), '%Y%m'),
  date_format(month, '%Y%m'))) as months,
  pending.amount,
  pending.admission_numb,
  pending.month,
  staff.full_name,
  staff.acc_code,
  (SELECT SUM(pending.amount) FROM pending p join staff s on p.admission_numb = s.admission WHERE p.acc_code = staff.acc_code) acc_code_total_pending
from
  pending join staff 
  on pending.admission_numb = staff.admission 
group by
  admission
order by
  staff.acc_code asc
于 2012-11-16T16:32:46.967 回答