首页 > 解决方案 > SQL - 从不同 ID 的同一列添加值

问题描述

我有 2 个表产品和库存,如下所示。

产品:

Product_ID     Product_Description    Price
100            Computer               30
200            Laptop                 50
300            Printer                10

存货:

Product_ID   Stock
100          40
200          15
300          50

从这两个表中,我需要一个查询来列出具有最大库存数量的产品 ID、产品描述和数量,并将笔记本电脑的库存添加到显示中。

预期输出:

Product_ID   Product_Description   Stock
300          Printer               65

65 是打印机 50 和笔记本电脑 15 的结果。

能否请您尽快帮忙查询一下?

标签: sqlsqlitesubquery

解决方案


您可以使用MAX()聚合函数来做到这一点:

SELECT p.Product_ID, p.Product_Description, 
       MAX(CASE WHEN p.Product_Description = 'Laptop' THEN i.Stock END) + 
       MAX(i.Stock) Stock
FROM Product p INNER JOIN Inventory i
ON i.Product_ID = p.Product_ID 

此代码依赖于 SQLite 的功能来返回包含最大值(在本例中为最后定义的最大值)的行。

演示
结果:

产品_ID 产品描述 库存
300 打印机 65

推荐阅读