对于班级,我正在创建一个数据库来跟踪我的财务状况。我为购买的每种物品都有一张桌子。例如Rent
,Food
,Hygiene
,Entertainment
等...我还有一个名为Register
的表,我想显示每月的总数每一个项目。表中总计的列名称如下:MonthlyRentTotal
,MonthlyFoodTotal
等...
我希望Register
表从每个表中提取总数,因此我不必两次输入。关于如何做到这一点的任何想法?我也不想创建视图。我希望它是一个实际的表。我什至不确定这是否可行。
答案 0 :(得分:1)
我假设“租金”,“食物”,“卫生”,“娱乐”具有相同的列类型。
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;
数据被透视以便插入到Register表中。
您可以将此查询放入存储过程中,也可以简单地手动运行它。如果您想在Register表中获取更新的数据,我建议:
希望这会有所帮助。让我知道您是否需要其他详细信息。
答案 1 :(得分:0)
仅在有充分理由的情况下,才应将项目分隔到单独的表中。对于您描述的项目,我没有令人信服的理由。
我会想象这样的数据结构:
itemCategories
-包含您关注的类别列表,例如“食品”,“卫生”等。Purchases
-包含每笔购买,并包含purchaseDate
,location
,itemCategory
,description
等列。您可能需要其他实体的其他表,例如“位置”。
您所说的Register
表将只是对Purchases
的查询或查看。