sql - 将不同表中的列相乘
问题描述
我有两张桌子RepairDetails
和Repairs
.
表格内Repairs
列出了我们提供的维修类型及其费用。
+-------------+---------------+
| repair_desc | repair_price |
+-------------+---------------+
| BasicHB | 50.00 |
| AdvHB | 80.00 |
| CCRepair | 40.00 |
| CCReplace | 80.00 |
+-------------+---------------+
在RepairDetails
表格内,有一个记录,unit_id
每个unit_id
都detail_id
附有一个记录,列出了适用于该单元的每种维修类型的数量。
+-----------+-----------+----------+-------+----------+-----------+
| detail_id | unit_id | BasicHB | AdvHB | CCRepair | CCReplace |
+-----------+-----------+----------+-------+----------+-----------+
| 1 | 1 | 2 | 0 | 0 | 1 |
+-----------+-----------+----------+-------+----------+-----------+
unit_id
用作将其与 a 关联的另一个表上的主键order_id
,然后将其用作order_id
将其与 a 关联的另一个表上的主键customer_id
。
我需要的是创建一个查询,该查询将获取表上列中的值RepairDetails
并将它们乘以表repair_cost
中各自的列Repairs
。最后,我希望能够基于customer_id
. 这是我更加迷失的地方,因为我相信会有不止一种JOIN
从customer_id
到order_id
到unit_id
到detail_id
。在这方面的任何帮助也将不胜感激!
非常感谢!
解决方案
您可以尝试使用以下代码:
select detail_id
, unit_id
, BasicHB*(select repair_price from Repairs where repair_desc = 'BasicHB')
as BasicHB_RepairDetailCost
, AdvHB*(select repair_price from Repairs where repair_desc = 'AdvHB')
as AdvHB_RepairDetailCost
, CCRepair*(select repair_price from Repairs where repair_desc = 'CCRepair')
as CCRepair_RepairDetailCost
, CCReplace*(select repair_price from Repairs where repair_desc = 'CCReplace')
as CCReplace_RepairDetailCost
from RepairDetails
--inner join Units on (Units.unit_id = RepairDetails.unit_id)
--inner join Orders on (Orders.order_id = Units.order_id)
--inner join Customers on (Customers.customer_id = Orders.customer_id)
--where Customers.customer_id =
在这个基本规模上,它应该适用于 Oracle 和 SQL Server。
如果这不是您想要的,请在评论中说明,我会尽力为您调整。
推荐阅读
- assembly - 在 V8 中为 x64 生成 cmp 和 cmov 指令
- javascript - reactJS 应用程序 string.replace 未定义
- powershell - 删除本地帐户仅删除 Powershell 中的一半
- batch-file - 使用 SQL Server 代理作业的 WinSCP 批量传输
- reactjs - 在状态中存储动态生成的输入值
- html - 视频在 iframe 悬停时波动
- css - 按钮高度固定,多行文本不显示在相同的垂直位置
- laravel-5 - 将 Vuetify 添加到我的 laravel/Vue 应用程序会破坏一些 laravel 组件 css
- woocommerce - 在产品页面上的产品标题旁边显示产品价格(在旁边,不在下方或上方)
- sql - 为什么这不返回 0