为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
aluckdog 2022-01-24 10:25:30
我有 1 个名为 itemmovement 的表:它有 Item Id、Quantity In、Quantity Out、Invoice Id、Date。我需要在一个查询中显示已售出多少件,并且在已售列旁边会有当前的手头数量。项目运动Id itemid qtyin qtyout invid 日期1     1            10                          2019-01-042     2            8                           2019-01-063     2                      2         1       2019-01-084     1                      3         2       2019-01-125     2            1                           2019-02-046     3            4                           2019-03-047     1                      1         3       2019-04-04我需要查询来显示这个结果Id itemid 已售数量 OnHandQty1     1               4             62     2               2             73     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) 排序
查看完整描述

2 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

你只是想要聚合吗?


select itemid,

       sum(qtyout) as sold_quantity,

       coalesce(sum(qtyin), 0) - coalesce(sum(qtyout), 0) as onhand

from itemmovement itmv

group by itemid;


查看完整回答
反对 回复 2022-01-24
?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

按 id 和聚合分组:


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         |


查看完整回答
反对 回复 2022-01-24
  • 2 回答
  • 0 关注
  • 162 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信