如何创建一个表与其他表格同时创建一个表格?

问题描述 投票:3回答:2

对于课程我正在创建一个跟踪我的财务状况的数据库。我为我购买的每种商品都有一张桌子。例如RentFoodHygieneEntertainment等...我还有一张名为Register的表格,我想显示每个项目的每月总计。表中总数的列名如下:MonthlyRentTotalMonthlyFoodTotal等...我希望Register表从每个表中提取总数,所以我不必输入两次。关于我怎么做的任何想法?我也不想创建视图。我希望它是一张真正的桌子。我甚至不确定这是否可行。

sql sql-server
2个回答
1
投票

我认为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表中。

enter image description here

您可以将此查询放在存储过程中,也可以手动运行它。如果您想在Register表中更新数据,我建议:

  • 使用TRUNCATE for Register表创建存储过程,然后执行上述查询
  • 创建SQL作业并随时安排存储过程的运行。

希望这可以帮助。如果您需要其他详细信息,请告诉我们。


0
投票

如果有令人信服的理由,您应该只将项目分成单独的表格。对于您描述的项目,我认为没有令人信服的理由。

我会想象一个像这样的数据结构:

  • itemCategories - 包含您关注的类别列表,例如“食物”,“卫生”等。
  • Purchases - 包含每次购买,包括purchaseDatelocationitemCategorydescription等栏目。

您可能需要其他实体的其他表,例如“location”。

您所谓的Register表只是对Purchases的查询或查看。

© www.soinside.com 2019 - 2024. All rights reserved.