SQL 和 Excel Sumifs 条件

SQL and Excel Sumifs conditions

开始这个问题的最佳方式是举一个具体的例子

只有三个不同的索赔编号。有没有一种方法可以在不对收入代码为“450”的索赔求和的情况下,对包含收入代码 320 和 300 的索赔的账单金额求和?在这个具体的例子中,claimNo U4343 满足我想要的特定条件,结果是 140。我有大量的数据集要处理,我只是想知道在 SQL 中是否有这个过程的捷径(访问语法) 和 Excel 2010 年?

感谢您的宝贵时间。

微软访问

SELECT ClaimNo, SUM(Billed)
FROM mytable
WHERE [Revenue Code] <> 450 -- or '450', depends on the column's type
GROUP BY ClaimNo

Excel

您可以对多个条件使用 SUMIFS 函数:

SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)

假设第一个claim U577,目标claim numbers 放在列E,你可以应用下面的函数列 F:

SUMIFS(C:C;A:A;E2;B:B;"<>450")

我可以为 SQL 部分做这个。我理解您的问题的方式是,您想完全丢弃任何行中包含收入代码 450 的索赔编号。然后对任何没有的索赔编号的计费列求和。方法如下:

SELECT claimno, sum(billed)
FROM T
GROUP BY claimno
HAVING claimno NOT IN
(SELECT claimno
 FROM T
 WHERE revenue_code = 450)

但是,如果您想对每个索赔编号的账单金额求和并简单地排除包含收入代码 450 的行,您可以这样做:

SELECT claimno, sum(billed)
FROM
(SELECT claimno, billed
 FROM T
 WHERE revenue_code <> 450) sub
GROUP BY claimno

此处测试:http://sqlfiddle.com/#!9/ae94a/6