Reputation: 37
I'm trying to calculate the SUM
of MEMDISC
but I keep getting this error on a stored procedure
Column 'dbo.ZZ.CNUM is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
This is my code
select
CNUM,
DESCRIPT,
ZCONTDESC,
substring(str(OCCDATE),9,2) + '/'+ substring(str(OCCDATE),7,2) + '/' + substring(str(OCCDATE),3,4),
COWNNUM,
CAST((CAST(substring(str(ANVDATE),3,4) AS INT) -1) AS CHAR(4))+'-' +substring(str(ANVDATE),3,4),
sum(MEMDISC)
from
dbo.ZZ
What it should look like?
Upvotes: 1
Views: 1226
Reputation: 471
As suggested in comments by @Lucky and @LukStorms, when you use aggregation functions you need to GROUP BY
all fields which are not included in an aggregation function. In your case you need something like this:
select CNUM, DESCRIPT, ZCONTDESC,
substring(str(OCCDATE),9,2) + '/'+ substring(str(OCCDATE),7,2) + '/' + substring(str(OCCDATE),3,4),
COWNNUM,
CAST((CAST(substring(str(ANVDATE),3,4) AS INT) -1) AS CHAR(4))+'-' +substring(str(ANVDATE),3,4),
sum(MEMDISC)
from dbo.ZZ
group by CNUM, DESCRIPT, ZCONTDESC,
substring(str(OCCDATE),9,2) + '/'+ substring(str(OCCDATE),7,2) + '/' + substring(str(OCCDATE),3,4),
COWNNUM,
CAST((CAST(substring(str(ANVDATE),3,4) AS INT) -1) AS CHAR(4))+'-' +substring(str(ANVDATE),3,4),
Upvotes: 1