SELECT DATENAME(MONTH, DATEADD(MM,-1, GETDATE()))
Для создания динамических имен столбцов рассмотрите возможность использования динамических запросов SQL:
DECLARE @sql NVARCHAR(MAX) = 'SELECT 1 AS '+DATENAME(MONTH, DATEADD(MM,-1, GETDATE()))
EXEC sp_executesql @sql
Результат
In your case:
DECLARE @sql NVARCHAR(MAX) = 'Select [STORE] = ET_LIBELLE,
CASE WHEN YEAR(GP_DATEPIECE) = YEAR(DATEADD(MONTH,-1,GETDATE()))
AND month(GP_DATEPIECE) = MONTH( DATEADD(MONTH,-1,GETDATE()))
THEN ISNULL([SALES], 0) ELSE 0 END) AS ' + DATENAME(MONTH, DATEADD(MM,-1, GETDATE())) + ',
CASE WHEN YEAR(GP_DATEPIECE) = YEAR(DATEADD(MONTH,-1,GETDATE()))
AND month(GP_DATEPIECE) = MONTH( DATEADD(MONTH,-1,GETDATE()))
THEN ISNULL([SALES], 0) ELSE 0 END) AS ' + DATENAME(MONTH, DATEADD(MM,-2, GETDATE())) + ',
.
.
.
FROM PIECE
GROUP BY ET_LIBELLE'