【问题标题】:Inserting Sum of 2 tables into a row将 2 个表的总和插入一行
【发布时间】:2010-02-01 17:48:53
【问题描述】:

我想将根据其他 2 个表计算的总和存储在“总计”表的一行中。

我想为每个表使用一列。

我尝试了以下方法:

插入总计 ( 日期, 第一表和, 第二表和 ) 选择 '2010/01/31', 总和(t.Data1), 总和(v.Data2) 从 FirstTable 为 t, SecondTable 为 v 在哪里 t.Date = '2010/01/31' AND v.Date = '2010/01/31'

如果我进行查询以检查 2 个不同表的总和,我有不同的值。

从 FirstTable 中选择 SUM(Data1) 日期='2010/01/31' /*结果与FirstTableSum不同:为什么?*/ 从 SecondTable 中选择 SUM(Data2),其中 Date='2010/01/31' /*结果和SecondTableSum不一样,为什么?*/

我做错了什么?

谢谢

【问题讨论】:

    标签: mysql


    【解决方案1】:

    试试这个

    SELECT 
     (SELECT SUM(Data1) FROM FirstTable WHERE Date=@date) FirstTableSum,
     (SELECT SUM(Data2) FROM SecondTable WHERE Date=@date) SecondTableSum
    

    【讨论】:

      【解决方案2】:

      尝试使用联合语句编写查询。 选择 '2010/01/31', 总和(t.Data1) 从 FirstTable 作为 t

      联合

      选择 '2010/01/31', 总和(t.Data1) 从 SecondTable as t

      【讨论】:

      • 谢谢亚历克斯!我完全忘记了这一点!
      【解决方案3】:

      您在 INSERT 语句中的两个表之间进行 JOIN,总和将是错误的,因为记录数是(FirstTable 行数 * SecondTable 行数)

      您可以使用有意义的条件加入表,或者如果它们不可加入,则考虑使用两个内部选择进行 SELECT,例如 zapping 回答

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-11
        • 1970-01-01
        • 2019-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多