如果合同只有一个项目,我需要返回项目名称,否则返回项目数。
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
我也尝试过用VLOOKUP函数替换Project,但这只是文本而不是计算的。
答案 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))
。但是,您使用的数据库中的语法可能有所不同。