Не могу понять, как бороться с суммой значений в MySQL

0

Доброе утро,

Я пытаюсь создать вывод 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

Надеюсь, кто-то может мне помочь.

Спасибо, уже!

  • 1
    Удалите некоторые столбцы в вашей группе. Для вывода, который вы указали, у вас должны быть только первые столбцы twp в группе.
  • 0
    Обычно вы группируете те же столбцы, что и выбранные, за исключением тех, которые являются аргументами для установки функций.
Теги:
sum

1 ответ

0
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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню