Объединить несколько запросов в 1 запрос - в одной строке - PullRequest
0 голосов
/ 23 сентября 2019

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

itemmovement

Id   itemid      qtyin     qtyout    invid        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

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

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

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

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)


Ответы [ 2 ]

1 голос
/ 23 сентября 2019

Вы просто хотите агрегировать?

select itemid,
       sum(qtyout) as sold_quantity,
       coalesce(sum(qtyin), 0) - coalesce(sum(qtyout), 0) as onhand
from itemmovement itmv
group by itemid;
0 голосов
/ 23 сентября 2019

Группировка по идентификатору и совокупности:

select
  itemid,
  coalesce(sum(qtyout), 0) `Sold Quantity`,
  coalesce(sum(qtyin), 0) - coalesce(sum(qtyout), 0) OnHandQty
from itemmovement
group by itemid

См. Демоверсию .Результаты:

| itemid | Sold Quantity | OnHandQty |
| ------ | ------------- | --------- |
| 1      | 4             | 6         |
| 2      | 2             | 7         |
| 3      | 0             | 4         |
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...