sql - 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 的结果。
能否请您尽快帮忙查询一下?
解决方案
您可以使用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 |
推荐阅读
- docker - 如果 docker 重新启动,为什么我会丢失数据?
- python - 使用 pysftp 连接到 SFTP 服务器时出现“加载主机密钥失败”警告
- anylogic - 如何通过概率使 2D 或 3D 火灾出现在出口处
- sql - Sequelize Include with Where 条件
- reactjs - Apollo GraphQL,通过网络套接字消费所有操作
- c# - Ternary operator c# shorthand
- reactjs - 获得 React 输入测试的建议
- flutter - 什么是飞镖中的 .. 运算符?
- python - seaborn 在点图中可视化点数
- ios - IOS ADAL框架让我登录页面没有出现