如何创建一个表与其他表格同时创建一个表格?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何创建一个表与其他表格同时创建一个表格?相关的知识,希望对你有一定的参考价值。
对于课程我正在创建一个跟踪我的财务状况的数据库。我为我购买的每种商品都有一张桌子。例如Rent
,Food
,Hygiene
,Entertainment
等...我还有一张名为Register
的表格,我想显示每个项目的每月总计。表中总数的列名如下:MonthlyRentTotal
,MonthlyFoodTotal
等...我希望Register
表从每个表中提取总数,所以我不必输入两次。关于我怎么做的任何想法?我也不想创建视图。我希望它是一张真正的桌子。我甚至不确定这是否可行。
答案
我认为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;
数据被旋转以便插入到Register表中。
您可以将此查询放在存储过程中,也可以手动运行它。如果您想在Register表中更新数据,我建议:
- 使用TRUNCATE for Register表创建存储过程,然后执行上述查询
- 创建SQL作业并随时安排存储过程的运行。
希望这可以帮助。如果您需要其他详细信息,请告诉我们。
另一答案
如果有令人信服的理由,您应该只将项目分成单独的表格。对于您描述的项目,我认为没有令人信服的理由。
我会想象一个像这样的数据结构:
itemCategories
- 包含您关注的类别列表,例如“食物”,“卫生”等。Purchases
- 包含每次购买,包括purchaseDate
,location
,itemCategory
,description
等栏目。
您可能需要其他实体的其他表,例如“location”。
您所谓的Register
表只是对Purchases
的查询或查看。
以上是关于如何创建一个表与其他表格同时创建一个表格?的主要内容,如果未能解决你的问题,请参考以下文章
雷林鹏分享:Apache POI电子表格/Spreadsheet