Объединение нескольких запросов - та же таблица - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть 1 таблица с именем itemmovement: в ней есть Идентификатор товара, Количество, Количество, Идентификатор счета, Дата.Мне нужно сделать в одном запросе, чтобы показать, сколько штук продано, и кроме проданного столбца будет текущее количество в наличии.

itemmovement

Id   itemid      qtyin     qtyout    invid    purchasereturnid          date
1     1            10                                                2019-01-04
2     2            8                                                 2019-01-06
3     2                      2         1                             2019-01-08
4     1                      3         2                             2019-01-12
5     2            1                                                 2019-02-04
6     3            4                                                 2019-03-04
7     1                      1         3                             2019-04-04
8     1                      1                      1                2019-04-14
9     3                      1                      2                2019-04-24

Мне нужен запрос, чтобы показатьэтот результат

Id   itemid      Sold Quantity   OnHandQty
1     1               4             5
2     2               2             7
3     3               0             3

Я пытаюсь использовать этот запрос, но не работает

SELECT *
FROM
  (SELECT itmv.itemid,
          sum(itmv.qtyout)-sum(itmv.qtyin)
   FROM itemmovement itmv
   WHERE (itmv.systemdate BETWEEN '2019-01-01' AND '2019-06-01')
     AND invid>0
   GROUP BY itmv.itemid) AS result1,

  (SELECT sum(itmv2.qtyin)-sum(itmv2.qtyout)
   FROM itemmovement itmv2
   WHERE itmv.itemid=itmv2.itemid
   GROUP BY itmv2.itemid) AS result2
ORDER BY sum(itmv.qtyin)-sum(itmv.qtyout)

Я получаю:

Неизвестный столбец 'itmv.itemid 'in' where, используйте его для этого синтаксиса:

, где itmv.itemid = itmv2.itemid

1 Ответ

0 голосов
/ 24 сентября 2019

Вот ваш запрос.

select itemid
    , sum(case when COALESCE(invid,0) > 0 then qtyout else 0 end) as Sold_Qantity
    , sum(qtyin)-sum(qtyout) as OnHandQty
from itemmovement
group by itemid
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...