源代码实例:
-- 工资统计表
SELECT
wages_header.bill_date,
wages.`name`,
SUM(wages.money) AS moneys
FROM
wages_header
LEFT JOIN wages ON wages.bill_code = wages_header.bill_code
LEFT JOIN people ON wages.people_code=people.people_code
LEFT JOIN department ON people.bm_id=department.id
LEFT JOIN `procedure` ON wages.pro_code=`procedure`.pro_code
LEFT JOIN product ON wages.product_code=product.product_code
WHERE 1=1
-- 核算区间,上线。如果时间参数为空,查询到的数据为空
AND (DATE_FORMAT( wages_header.bill_date, '%Y-%m-%d' ) <= DATE_FORMAT( '2020-11-01', '%Y-%m-%d' ))
-- 核算区间,上线。如果时间参数为空,查询到的数据为空
AND (DATE_FORMAT( wages_header.bill_date, '%Y-%m-%d' ) >= DATE_FORMAT( '2019-10-01', '%Y-%m-%d' ))
-- 选择部门条件,可多选
AND (department.bm_name LIKE '%实施部%' OR department.bm_name LIKE '%开发部%')
-- 选择人员条件,可多选
AND (people.people_name LIKE '%杨浩然%' OR people.people_name LIKE '%杨杨%')
-- 选择工序查询,可多选。需要遍历,并且要判断是否为空,为空的话不加
AND (product.product_name LIKE '%手机%' OR product.product_name LIKE '%电脑%')
GROUP BY wages_header.bill_date,wages.`name`;
查询到的结果为:
GROUP BY语法
-- 工资统计表
SELECT
需要查询的字段
SUM(需要求和的字段名,如果没有可以不写) AS moneys
FROM
需要查询的表名
WHERE
查询条件
GROUP BY 分组字段一,分组字段二;