sql server 问题 求解答!

如图 怎么用sql server 把表1变成表2,表2的初始库存施上个月的月底库存

img

源于chatGPT仅供参考

为了将表1转换为表2,并在表2中计算期末数量为初始数量+生产入库数量+采购入库数量-销售出库数量-销售退货数量,可以使用 SQL ServerUPDATE 语句和子查询来实现。

假设表1的结构如下:

表1: Inventory
+----+--------+-------------+--------------+---------------+--------------+----------------+--------------+
| ID | 名称 | 日期初始数量 | 生产入库数量 | 采购入库数量 | 销售出库数量 | 销售退货数量 | 期末数量 |
+----+--------+-------------+--------------+---------------+--------------+----------------+--------------+
| 1 | 物品A | 100 | 50 | 30 | 20 | 10 | NULL |
| 2 | 物品B | 200 | 80 | 40 | 50 | 0 | NULL |
+----+--------+-------------+--------------+---------------+--------------+----------------+--------------+


要将表1转换为表2并计算期末数量,可以执行以下 SQL 查询:
```sql
UPDATE Inventory
SET 期末数量 = 日期初始数量 + 生产入库数量 + 采购入库数量 - 销售出库数量 - 销售退货数量

通过运行上述更新语句,将会将计算得到的期末数量值更新到表2的每一行记录中。

最后,通过以下查询验证结果:

SELECT * FROM Inventory

输出应如下:

表2: Inventory
+----+--------+-------------+--------------+---------------+--------------+----------------+--------------+
| ID | 名称   | 日期初始数量 | 生产入库数量 | 采购入库数量 | 销售出库数量 | 销售退货数量   | 期末数量     |
+----+--------+-------------+--------------+---------------+--------------+----------------+--------------+
| 1  | 物品A  | 100         | 50           | 30            | 20           | 10             | 150          |
| 2  | 物品B  | 200         | 80           | 40            | 50           | 0              | 270          |
+----+--------+-------------+--------------+---------------+--------------+----------------+--------------+

以上示例假设你已经有了名为 "Inventory" 的表,并且其结构和数据与示例相符。如果你的情况不同,请根据实际情况修改表名和列名等。

```

使用递归赋值试试

将期末数量设为计算列,sql server 中有计算列
例如:
create table tmp (
[count2] int,
[count1] int,
[count] as [count1]+[count2]);