DECLARE @buyerName AS VARCHAR(MAX),
@buyerName1 AS VARCHAR(MAX),
@query AS VARCHAR(MAX)
SET @buyerName1=STUFF((SELECT Distinct ',Isnull('+ QUOTENAME( Rtrim( Ltrim(O. fldBuyer)) )+',0)'+QUOTENAME( Rtrim( Ltrim(O. fldBuyer))) from tblGreyFabricDelivery D inner join tblGreyFabricOrderDetails O
on D.fldID=O.fldID where O. fldBuyer !='0' and (Cast(D.fldDeliveryDAte as Date ) between '01-jan-2015' and '20-jan-2015')
FOR XML PATH(''),TYPE).value('.','VARCHAR(MAX)'),1,1,'')
SET @buyerName=STUFF((SELECT Distinct ','+ QUOTENAME( Rtrim( Ltrim(O. fldBuyer)) ) from tblGreyFabricDelivery D inner join tblGreyFabricOrderDetails O
on D.fldID=O.fldID where O. fldBuyer !='0' and (Cast(D.fldDeliveryDAte as Date ) between '01-jan-2015' and '20-jan-2015')
FOR XML PATH(''),TYPE).value('.','VARCHAR(MAX)'),1,1,'')
SET @query='Select fldDeliveryDAte,'+@buyerName1+' FROM
(
select Cast(fldDeliveryDAte as Date) fldDeliveryDAte , Rtrim( Ltrim(O. fldBuyer))fldBuyer, Sum(fldDeliveryQuantity) Qty from tblGreyFabricDelivery D inner join tblGreyFabricOrderDetails O
on D.fldID=O.fldID where O.fldBuyer !=''0''
and ( cast( D.fldDeliveryDAte as Date) between ''01-jan-2015'' and ''20-jan-2015'')
Group by Cast(fldDeliveryDAte as Date) , O.fldBuyer
)
A
PIVOT(Sum(Qty) FOR fldBuyer IN ('+@buyerName+'))P order by fldDeliveryDAte';
exec (@query);