【问题标题】:Returning the sum of items depending on which type it is根据项目的类型返回项目的总和
【发布时间】:2010-09-07 00:44:39
【问题描述】:

我有一个字段需要求和,比如说命名项目 但是,该字段可以是组 a 或 b 的一部分 最后,我需要对 a 组和 b 组的所有项目求和

当我说分组时,我的意思是另一个表有一个 LEFT OUTER JOIN,前一个表有一个项目类型,而正在加入的表有一个分配给这个项目类型的组

对不起,我对 sql 有点陌生,我将尝试你给我的东西,然后回复你

好吧,我觉得我们已经接近了,只是还没有 allain's 我可以让他们分开,但是我需要让两个组在同一行上求和,这很困难,因为我还涉及到几个 LEFT OUTER JOIN

p>

Tyler 的看起来也可以,所以我正在尝试快速解决这个问题

Alain's 似乎是要走的路,但我必须再调整一下

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    也许我不明白你所问的复杂性,但是......不应该这样做吗?

    SELECT groupname, SUM(value)
    FROM items
    WHERE groupname IN ('a', 'b')
    GROUP BY groupname
    

    如果您不关心该项目属于 a 或 b 中的哪一个,则可以这样做:

    SELECT SUM(value)
    FROM items
    WHERE groupname IN ('a', 'b')
    

    【讨论】:

      【解决方案2】:

      你想要类似的东西

      SELECT column,SUM( column ) FROM table GROUP BY column
      

      【讨论】:

        【解决方案3】:

        这是(Tyler 的回答)问题的意思吗,或者仅仅是这个;

        SELECT sum(item), groupingField FROM someTable GROUP BY groupingField
        

        甚至:

        SELECT count(*), item FROM someTable GROUP BY item
        

        这将产生如下结果:

        sum(item)    |     groupingField
        -------------+-----------------------
         71          |          A
         82          |          B
        

        提问者,也许你可以澄清一下你的意思或者我是否过于简单化了?

        【讨论】:

          【解决方案4】:

          试试这个:

          SELECT B.[Group], COUNT(*) AS GroupCount
          FROM Table1 A
          LEFT JOIN Table2 B ON B.ItemType=A.ItemType
          GROUP BY B.[Group]
          

          【讨论】:

            【解决方案5】:

            请参考此图片 (1)

            SELECT category_id,SUM(amount) AS count  FROM expense GROUP BY category_id;
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-06-14
              • 1970-01-01
              • 2023-01-16
              • 1970-01-01
              • 1970-01-01
              • 2014-10-12
              相关资源
              最近更新 更多