将多个查询合并为 1 个查询 - 在同一行

我有 1 个名为 itemmovement 的表:它有 Item Id、Quantity In、Quantity Out、Invoice Id、Date。我需要在一个查询中显示已售出多少件,并且在已售列旁边会有当前的手头数量。


项目运动


Id itemid qtyin qtyout invid 日期

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 已售数量 OnHandQty

1     1               4             6

2     2               2             7

3     3               0             4


我正在尝试使用此查询但不工作


选择 * 从 (

        选择 itmv.itemid,sum(itmv.qtyout)-sum(itmv.qtyin)

        FROM itemmoveitmv

        WHERE(itmv.systemdate BETWEEN '2019-01-01' AND '2019-06-01')和 

                显示> 0 

        按 itmv.itemid 分组)作为结果 1,


        (选择总和(itmv2.qtyin)-总和(itmv2.qtyout)

        来自 itemmovement itmv2

        其中 itmv.itemid=itmv2.itemid

        按 itmv2.itemid 分组)作为 result2


        按 sum(itmv.qtyin)-sum(itmv.qtyout) 排序


aluckdog
浏览 163回答 2
2回答

尚方宝剑之说

你只是想要聚合吗?select itemid,       sum(qtyout) as sold_quantity,       coalesce(sum(qtyin), 0) - coalesce(sum(qtyout), 0) as onhandfrom itemmovement itmvgroup by itemid;

侃侃尔雅

按 id 和聚合分组:select  itemid,  coalesce(sum(qtyout), 0) `Sold Quantity`,  coalesce(sum(qtyin), 0) - coalesce(sum(qtyout), 0) OnHandQtyfrom itemmovementgroup by itemid请参阅演示。结果:| itemid | Sold Quantity | OnHandQty || ------ | ------------- | --------- || 1      | 4             | 6         || 2      | 2             | 7         || 3      | 0             | 4         |
打开App,查看更多内容
随时随地看视频慕课网APP