Dynamic Pivot without Null value -


this dynamic crosstab query in northwind database:

declare @country nvarchar(max) ='', @country2 nvarchar(max)  select @country = @country + quotename(country)+', ' customers group country  set @country= left(@country, len(@country)-1)  set @country2 = replace(@country, ',' , '+')  declare @sql nvarchar(max)  set @sql = 'select * , '+@country2+' total            (select e.employeeid, e.lastname,                          isnull( od.quantity, 0)* isnull(od.[unitprice],0) qu,                         o.shipcountry co                  orders o join employees e on o.employeeid = e.employeeid                       join [dbo].[order details] od on od.orderid = o.orderid) t pivot(sum(qu) co in ('+@country+')) pvt order 1' exec(@sql)  

i need change code in way have null values replaced 0.

result of query:

declare @country nvarchar(max) = '' ,   @country2 nvarchar(max);  select  @country = @country + coalesce(quotename(country) + ', ', '')    customers   exists ( select *                    [orders] [o]                   o.[customerid] = customers.[customerid] ) group country;  set @country = left(@country, len(@country) - 1);  set @country2 = replace(@country, ',', '+');  declare @sql nvarchar(max);  set @sql = 'select * , ' + @country2 +   ' total            (            select  oe.employeeid, oe.lastname, oe.shipcountry co,         coalesce(od.quantity * od.unitprice, 0) qu    (           select  employeeid, lastname, shipcountry              (                     select distinct                             shipcountry                        orders                   ) o ,                   employees         ) oe left join orders o on o.employeeid = oe.employeeid ,                   [oe].[shipcountry] = [o].[shipcountry] left join [order details] od on od.orderid = o.orderid             ) t pivot(sum(qu) co in (' + @country + ')) pvt order 1';  exec(@sql);  

Comments