根据项目的类型返回项目总和

时间:2008-08-27 16:14:43

标签: sql sql-server

我有一个字段需要总结让我们说出命名的项目 但是,该字段可以是组a或b的一部分 最后,我需要为a组和b组总结所有项目

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

对不起家伙我对sql有点新意我会尝试一下你给我的回复

好的,我觉得我们已经接近但尚未allain我可以将它们分开但问题是我需要让两个小组在同一行上总结这很困难,因为我还有几个LEFT OUTER JOIN参与

Tyler看起来可能也会起作用,所以我试图将其快速解决。

Alain似乎是要走的路,但我必须再多调一遍

5 个答案:

答案 0 :(得分:4)

也许我不理解你所要求的复杂性,但......不应该这样做吗?

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')

答案 1 :(得分:0)

你想要像

这样的东西
SELECT column,SUM( column ) FROM table GROUP BY column

答案 2 :(得分:0)

这是(泰勒的答案)这个问题意味着什么,或者仅仅是这个;

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

甚至:

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

将产生如下结果:

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

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

答案 3 :(得分:0)

试试这个:

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

答案 4 :(得分:-1)

请参考这张图片(1

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