add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE SALESHS
(
IDAREA INT,
DATEREG [NVARCHAR](50) NOT NULL,
IDPROD [NVARCHAR](50) NOT NULL
);

INSERT INTO SALESHS
(
IDAREA, DATEREG, IDPROD
)
VALUES
(
1, '12/03/2019', 'xplpc'
),
(
1, '15/03/2019', 'ndtlctm'
),
(
2, '12/04/2019', 'wntd'
)

3 rows affected
--Build the column names for Pivot using dynamic SQL
DECLARE @YourChoice date
set @YourChoice = '2018/12/14'

declare @count int = 0
declare @columnstr varchar(max)
declare @columnpivot varchar(max)
declare @onecolumnname varchar(20)

set @columnstr = ''
set @columnpivot = ''
set @onecolumnname = ''
while @count <= DATEDIFF(MONTH,@YourChoice,GETDATE())
begin
set @onecolumnname = concat(cast(datename(month,dateadd(month,@count,@YourChoice)) as varchar(50)),cast(year(dateadd(month,@count,@YourChoice)) as varchar(10)))
set @columnstr = @columnstr + 'coalesce([' + @onecolumnname+ '],0) as '+@onecolumnname+', '
set @columnpivot = @columnpivot + '['+@onecolumnname+'], '
set @count = @count + 1
end

set @columnstr = left(@columnstr,len(@columnstr)-1)
set @columnpivot = '('+left(@columnpivot,len(@columnpivot)-1)+')'

--Pivot time!
declare @str varchar(max)
set @str =
'select IDAREA,' + @columnstr +' from (
select count(s.idarea) as amount,IDAREA,columnname from (
select *,datename(month,cast(substring(datereg,7,4)+''-''+substring(datereg,4,2)+''-''+substring(datereg,1,2) as datetime)) + SUBSTRING(datereg,7,4) as columnname
from SALESHS )s
group by IDAREA,columnname)s1
pivot
(
max(s1.amount)
for s1.columnname in '+@columnpivot+'
) p'
IDAREA December2018 January2019 February2019 March2019 April2019 May2019 June2019 July2019 August2019 September2019 October2019 November2019 December2019 January2020 February2020 March2020 April2020 May2020 June2020 July2020 August2020 September2020 October2020 November2020 December2020 January2021 February2021 March2021 April2021 May2021 June2021 July2021 August2021 September2021 October2021 November2021 December2021 January2022 February2022 March2022 April2022 May2022 June2022 July2022 August2022
1 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0