I’m getting ‘Column name is invalid in the select list’ error when i execute the query

Try this :

SELECT        TOP (3) a.INCIDENT_ID, a.REFERENCE, SUM(b.COST) AS TOTAL_COST
FROM          FDDC_T_D_INCIDENT AS a INNER JOIN
              FDDC_T_D_INCIDENT_COST AS b ON a.INCIDENT_ID =b.FINCIDENT_ID
WHERE        (a.CREATED_DATE >= @date1) AND (a.CREATED_DATE <= @date2)
GROUP BY a.INCIDENT_ID, a.REFERENCE
ORDER BY TOTAL_COST DESC

You need to add ‘a.REFERENCE’ to the GROUP BY clause.

EDIT :

Please try this if you only want to GROUP BY ‘a.INCIDENT_ID’ :

SELECT INCIDENT_ID, REFERENCE, TOTAL_COST
FROM(
        SELECT        TOP (3) a.INCIDENT_ID, a.REFERENCE, SUM(b.COST) AS TOTAL_COST
        FROM          FDDC_T_D_INCIDENT AS a INNER JOIN
                      FDDC_T_D_INCIDENT_COST AS b ON a.INCIDENT_ID =b.FINCIDENT_ID
        WHERE        (a.CREATED_DATE >= @date1) AND (a.CREATED_DATE <= @date2)
        GROUP BY a.INCIDENT_ID, a.REFERENCE
        ORDER BY TOTAL_COST DESC
    ) AS T
GROUP BY INCIDENT_ID

Hope this helps.

Leave a Comment