如果匹配条件,Excel返回字段中的SQL

时间:2018-11-11 12:05:18

标签: sql excel vba

如果合同只有一个项目,我需要返回项目名称,否则返回项目数。

Contract, Project, Rev
con1    , prj1   , 5
con1    , prj2   , 20
con2    , prj3   , 30

可能的结果:

Contract, Project, Sum of Rev 
con1    , 2      , 25
con2    , prj3   , 30

到目前为止,我有这个:

SELECT Contract, IIF(Count(Project)=1,Project,COUNT(Project)) AS 
       ProjectCount, SUM(Rev) AS Sum of Rev 
FROM Table1 
GROUP BY Contract 

Error picture

我也尝试过用VLOOKUP函数替换Project,但这只是文本而不是计算的。

1 个答案:

答案 0 :(得分:1)

尝试一下:

SELECT Contract, 
       IIF(Count(Project) = 1, MAX(Project), COUNT(Project)) AS ProjectCount,
       SUM(Rev) AS Sum of Rev 
FROM Table1 
GROUP BY Contract ;

如果只有一个项目,则最大值 是项目的名称。

您可能需要将MAX(Project)转换为字符串。标准语法为:CAST(MAX(Project) as VARCHAR(32))。但是,您使用的数据库中的语法可能有所不同。