在SQL表中组合类似的列?

时间:2015-06-09 15:47:07

标签: c# sql logic

我有一张包含目录#,位置和数量的表格。我希望将所有类似的目录#组合在一起,并将新行的数量作为该目录的所有行数量的总和#。

例如,如果我有:

Catalouge#, Location, Quantity
1234, A, 5
1234, B, 10
1234, C, 10
4321, A, 2
4321, B, 3

我想最终:

Catalouge#, Location, Quantity
1234, null, 25
4321, null, 5

有数百个目录号,因此我无法对每个目录号进行单独查询。但这是我能想到的唯一方法。任何一个机构都有更普遍的方式去做吗?我更喜欢在sql中执行此操作,但如果需要,我可以在c#中执行此操作。

2 个答案:

答案 0 :(得分:1)

听起来你只需要分组:

select
 CatalogueNo, null as Location, sum(Quantity) as Quantity
from ...
where ...
group by CatalogueNo

SQL数据库非常擅长聚合。看看例如https://msdn.microsoft.com/en-us/library/ms173454.aspx

答案 1 :(得分:0)

在C#中它非常简单,请使用Hashset并将所有字符串添加到该集合中。它将自动不添加重复的一个,最后你将在这个项目中始终有一个唯一的字符串条目。见下面的样本。

using System.Collections.Generic;

var items = new HashSet<string>();
            items.Add("1234");
            items.Add("1234");

            var count = items.Count; //it will be always one.