sql—不知道如何处理mysql中的值和

ibps3vxo  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(351)

早上好,
我正在尝试从传入和传出的产品创建mysql输出。这是可行的,但我无法获得同一行中所有产品的值。希望有人能帮我(在orderinhoud-deelleveling.aantal列中有许多次空值。)
这是我的密码:

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

我希望有人能帮我。
已经谢谢了!

gab6jxml

gab6jxml1#

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

相关问题