无法通过id&& dept获得每位员工的总金额

时间:2015-03-16 05:45:09

标签: php mysql sql-server

我的查询有问题。首先,让我向您讨论系统流程。

我的客户拥有一家公司,在公司内部还有一家小杂货店和一家公司。食堂)为她的员工提供零食/餐点。

员工不必在订购时付款,而是只列出他们从杂货店或食堂带上的所有物品/餐点以及他们的名字和发薪日(每月到期)每个员工所服用的项目总金额将从其总薪水中扣除。

练习1。约翰卡特从杂货店拿了一个价值45美元的爆米花,午餐时他从食堂拿了三明治和Caesar Salad,价值125.00美元。因此,在他的发薪日,他的工资总额将减去170.00美元。

在我的数据库中,我有3个表。一个名为sales的商品,其中存储了杂货店的所有商品,数量,单位和数量 防爆。 Biscuit10pack;
Coffee Sachet5pack;等
基本上,在我的stock表格中,我有item_namequantityunitOfmeasurementamount_sale
注意:amount_sale是杂货店的销售数量。 对于下一张桌子,我serve到了食堂的所有食物库存。我还有item_namequantityuom和当然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
  Jane Hartley - 会计部门应扣除$ 130.00
  会计部门的员工总金额为300.00美元

     Bob Oswald-Marketing Dept应扣除$ 260.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。

1 个答案:

答案 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代码。