在类里面,我正在创建一个数据库来跟踪我的财务状况。对于我购买的每种类型的商品,我都有一个表格。例如 Rent
、Food
、Hygiene
、Entertainment
等...我还有一个名为 的表>Register
我要显示每个项目的每月总计。表中总计的列名称如下:MonthlyRentTotal
、MonthlyFoodTotal
等...
我希望 Register
表从每个表中提取总数,这样我就不必输入两次。关于我该怎么做的任何想法?我也不想创建 View 。我希望它是一张实际的 table 。我什至不确定这是否可能。
最佳答案
我假设 Rent、Food、Hygiene、Entertainment 具有相同的列类型。
INSERT INTO Register
SELECT *
FROM
(SELECT SUM(a.rent_value) AS value,
'monthlyrent' AS TYPE
FROM Rent a
UNION SELECT SUM(b.food_value) AS value,
'monthlyfood' AS TYPE
FROM Food b) d pivot(max(value)
FOR TYPE IN (monthlyrent, monthlyfood)) piv;
数据被旋转以便插入注册表。
您可以将此查询放在存储过程中或简单地手动运行它。如果您想更新注册表中的数据,我建议:
- 使用 TRUNCATE for Register 表创建一个存储过程,然后执行上述查询
- 创建一个 SQL 作业并在您需要的任何时间安排存储过程的运行。
希望这对您有所帮助。如果您需要更多详细信息,请告诉我。
关于sql - 如何与其他表同时创建一个表以从每个表中提取总计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55195641/