SELECT idteam,
job,
price,
COUNT('X') as INFORMS,
SUM(COUNT('X') * price) as TOTAL
FROM REP
JOIN COSTS ON (job = categ AND to_number(to_char(REP,'YYYY')) = year)
GROUP BY idteam, job, price, TOTAL
ORDER BY IDTEAM;
我不知道为什么要在GROUP BY中写入TOTAL,并且sql向我发送错误消息。标识符无效。
我不知道该如何解决。
谢谢。
“ TOTAL”列是SUM(COUNT('X')* price)的别名。它不能用作GROUP BY子句中的列标识符。您必须说出GROUP BY SUM(COUNT('X')* price),因为在分组时“ TOTAL”未知/不是列。使用GROUPING后,可以在HAVING子句中引用“ TOTAL”。无论如何,您使用的SQL版本/类型不允许这样做。
另外,为什么要计数“ X”?X是固定值,并且不依赖于您的任何列。如果要计数每一行,只需使用Count(1)或Count(*)。另外,您不需要总计COUNT。COUNT已被求和。
您应该发布REP和COSTS的结构。链接的图像没有足够的信息来支持您编写的查询。
select
idteam,
-- job, /* not selected since it would need to be grouped*/
sum(price) as 'theSUM'
from REP
join COSTS
on REP.categ = COSTS.job
and COSTS.year = 2016
group by idteam
order by idteam
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句