早上好,

我正在尝试从我的传入和传出产品创建mysql输出。这行得通,但我无法获得同一行中所有产品的值。希望有人可以帮助我。 (在orderinhoud-deellevering.aantal列中,有很多次NULL值。)

这是我的代码:

SELECT
  orderinhoud.Artnr,
  orderinhoud.Description,
  If(voorraadmutatie.waarde = 1, Sum(voorraadmutatie.waarde * (orderinhoud.Amount -  Coalesce((`orderinhoud-deellevering`.aantal), 0))), 0) AS INKOMEND,
  If(voorraadmutatie.waarde <> 1, Sum(voorraadmutatie.waarde * (orderinhoud.Amount -  Coalesce((`orderinhoud-deellevering`.aantal), 0))), 0) AS UITGAAND
FROM
  orderinhoud
  RIGHT OUTER JOIN `order` ON `order`.id = orderinhoud.orderid
  LEFT OUTER JOIN voorraadmutatie ON `order`.voorraadmutatie = voorraadmutatie.Id
  LEFT OUTER JOIN `orderinhoud-deellevering` ON orderinhoud.orderinhoudid = `orderinhoud-deellevering`.orderinhoudid
WHERE
`order`.leverancierid = 22
GROUP BY
  orderinhoud.Artnr,
  orderinhoud.Description,
  `order`.deliverydatetotal,
  `order`.leverancierid,
  `order`.commissiecompleet,
  `order`.voorraadmutatie


---我得到的输出如下---

Artnr   Description INKOMEND    UITGAAND
K30000  ROUND  ALARM    2400    0
K30000  ROUND  ALARM    0      -788
K30001  SQUARE ALARM    1900    0
K30001  SQUARE ALARM    0      -1020


但是我想要的输出是这样的:

Artnr   Description INKOMEND    UITGAAND
K30000  ROUND  ALARM    2400    -788
K30001  SQUARE ALARM    1900    -1020


我希望有人可以帮助我。

已经谢谢你了!

最佳答案

Select q1.Artnr,q1.Description,sum(INKOMEND),sum(UITGAAND)
from
(
SELECT
  orderinhoud.Artnr,
  orderinhoud.Description,
  If(voorraadmutatie.waarde = 1,
Sum(voorraadmutatie.waarde * (orderinhoud.Amount -  Coalesce((`orderinhoud-deellevering`.aantal), 0))), 0) AS INKOMEND,

  If(voorraadmutatie.waarde <> 1, Sum(voorraadmutatie.waarde * (orderinhoud.Amount -  Coalesce((`orderinhoud-deellevering`.aantal), 0))), 0) AS UITGAAND

FROM
  orderinhoud
  RIGHT OUTER JOIN `order` ON `order`.id = orderinhoud.orderid
  LEFT OUTER JOIN voorraadmutatie ON `order`.voorraadmutatie = voorraadmutatie.Id
  LEFT OUTER JOIN `orderinhoud-deellevering` ON orderinhoud.orderinhoudid = `orderinhoud-deellevering`.orderinhoudid
WHERE
`order`.leverancierid = 22
GROUP BY
  orderinhoud.Artnr,
  orderinhoud.Description,
  `order`.deliverydatetotal,
  `order`.leverancierid,
  `order`.commissiecompleet,
  `order`.voorraadmutatie
) q1 group by q1.Artnr,q1.Description

关于mysql - 无法弄清楚如何处理mysql中的值总和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49751436/

10-16 15:15
查看更多