我的查询有问题。首先,让我向您讨论系统流程。
我的客户拥有一家公司,在公司内部还有一家小杂货店和一家公司。食堂)为她的员工提供零食/餐点。
员工不必在订购时付款,而是只列出他们从杂货店或食堂带上的所有物品/餐点以及他们的名字和发薪日(每月到期)每个员工所服用的项目总金额将从其总薪水中扣除。
练习1。约翰卡特从杂货店拿了一个价值45美元的爆米花,午餐时他从食堂拿了三明治和Caesar Salad,价值125.00美元。因此,在他的发薪日,他的工资总额将减去170.00美元。
在我的数据库中,我有3个表。一个名为sales
的商品,其中存储了杂货店的所有商品,数量,单位和数量
防爆。 Biscuit
,10
,pack
;
Coffee Sachet
,5
,pack
;等
基本上,在我的stock
表格中,我有item_name
,quantity
,unitOfmeasurement
,amount_sale
注意:amount_sale
是杂货店的销售数量。
对于下一张桌子,我serve
到了食堂的所有食物库存。我还有item_name
,quantity
,uom
和当然amount_serve
;填补这个。
和当然,customer
表,其中存储了客户的表格,如name
等。
这是我的查询,以获得将扣除到每个员工薪水的总金额。
SELECT c.*, SUM(sale.amount_sale) AS a, SUM(serv.amount_serve) AS b
FROM customer AS c INNER JOIN sales AS sale ON
sale.customer_id=c.customer_id INNER JOIN serve AS serv ON
serv.customer_id=c.customer_id GROUP BY c.customer_id ORDER BY c.cdept ASC;
使用此查询,输出为:
图1:
John Carter应扣除$ 170.00
Jane Hartley应扣除$ 130.00
输出很好并且符合预期,但我的客户接下来想要获得每个部门的每个员工的总价值。为了进一步解释这个问题,这是我的例子。
图2(预期输出):
John Carter-会计部门应扣除$ 170.00
Bob Oswald-Marketing Dept应扣除$ 260.00
Jane Hartley - 会计部门应扣除$ 130.00
会计部门的员工总金额为300.00美元
Marie May Stewart-营销部门应扣除$ 100.00
营销部门的员工总金额为360.00美元
根据我上面提到的查询,我得到了图1所需的结果。虽然现在很难做到图2.我试图通过在{{1}中添加and c.cdept
来改变我的查询但它只显示输出。
图3:
John Carter-会计部门应扣除$ 300.00 意味着他自己的到期与Jane Hartley的合并。
知道如何获得图2的输出?我会在我的查询中添加什么来获取它,或者我的查询有什么问题?
表格结构:
-SALES-
ID,CUSTOMER_ID,SALE_DATE,qtysold,amount_sale。
-SERVE-
serve_id,CUSTOMER_ID,servedate,qtyserve,amount_serve。
-CUSTOMER-
CUSTOMER_ID,CUSTOMER_NAME,CDEPT。
答案 0 :(得分:0)
虽然您描述了该场景,但我们无法想象桌面结构是否正确。我猜Sales表包含所有与销售相关的东西。可能这个查询可能对你有用
选择c.dept_name,sum(sale.amount_sale)来自客户,作为c.id = sale.customer_id group by c.dept_name的销售;
更新:
我想,您需要为PHP代码而不是MySql Query添加逻辑。您可以使用First Query来显示Figure2结果,但您需要根据它更改PHP代码。