sql - 如何在 SQL 中向表中添加查询?
问题描述
我有 3 张桌子。为简单起见,我将它们更改为这些示例表。
表 1:CorporateActionSmmary
RATE Quantity ProductID
--------------------------
56 0 1487
30 0 1871
40 0 8750
table2# ProductMaster
RATEGROSS ISIN ProductID
--------------------------
60 JP0001 1487
33 JP0002 1871
45 JP0003 8750
table3# OpenPosition
Quantity ProductID
-------------------
5 1487
1 1487
5 1487
3 1871
2 1871
4 8750
2 8750
7 8750
3 8750
首先,我需要将表 2 中的 ISIN 添加到表 1 表 1:CorporateActionSmmary
RATE Quantity ProductID ISIN
-------------------------------------
56 0 1487 JP0001
30 0 1871 JP0002
40 0 8750 JP0003
所以,我使用了这段代码
SELECT [dbo].[CorporateActionSummary].*, [dbo].[ProductMaster].[ISIN]
FROM [dbo].[CorporateActionSummary] JOIN [dbo].[ProductMaster] ON CorporateActionSummary.ProductID = ProductMaster.ProductID
现在您可以看到表 1 中缺少数量,因此我必须将表 3 中每个产品 ID 的所有数量加起来并添加到表 1(作为新列或覆盖数量列)
我想我可以通过以下代码得到每个 ProductID 数量的总和,但是如何将它添加到已经有 ISIN 列的 Table1
SELECT SUM(Qantity),ProductID
FROM [dbo].[OpenPositions]
我是SQL超级新手,如果可以的话请详细解释一下,谢谢
我正在使用 Microsoft SQL Server Management Studio
解决方案
您可以对数量求和,然后像这样加入您的查询:
SELECT CA.*, PM.[ISIN],CA.Quantity
FROM [dbo].[CorporateActionSummary] CA
JOIN [dbo].[ProductMaster] PM
ON CA.ProductID = PM.ProductID
JOIN (
SELECT ProductID, SUM(Qantity) Quantity
FROM [dbo].[OpenPositions]
GROUP BY ProductID
) OO
on OO.ProductID = CA.ProductID
推荐阅读
- java - 使用return语句递归打印数字
- coldfusion - 我可以在coldfusion中从带有sql查询的函数返回文本形式的列吗
- php - 如何计算mysql表中的特定值并用php回显,varchar在表中的次数?
- r - hisafer 安装 - 如何解决硬编码的安装路径?
- php - 这是会话的 PHP 超时还是 MySQL 超时?如何解决?
- node.js - Angular 显示“无法读取 null 的属性‘朋友’”
- javascript - 如何在函数参数中指定通用键约束
- c# - 为获取/设置私有值创建单独的公共函数有什么意义?
- python-2.7 - 如何在python 2.7的函数声明中的for循环内的if语句中获取变量的值
- html - 如何添加包含我的产品列表中所有元素的下拉列表