Click here to Skip to main content
15,896,726 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I have a Following Output but not What i desire For... please help me to get desire output


With Following Query

SQL
SELECT SUM(Column Name) AS Total ,Status
DATEADD(DAY,0,DATEDIFF(DAY,0,DelivaryDate))
DeleiveryDate , Total
FROM Abc
WHERE Column Name = Fieldname
AND (DelivaryDate BETWEEN @FromDate AND @ToDate)
GROUP BY DATEADD(DAY,0,DATEDIFF(DAY,0,DelivaryDate)) , Status
ORDER BY DATEADD(DAY,0,DATEDIFF(DAY,0,DelivaryDate)) , Status




HTML
What I have                                                    

DelivaryDate          Status       Total            
26-08-2014            DND          50           
26-08-2014           Failed        20            
26-08-2014           Delivered     100
27-08-2014              DND         5
27-08-2014           Delivered      10



HTML
What i Want

DelivaryDate    DND   Failed   Delivered    Total
26-08-2014      50      20        100        170
27-08-2014      5      -         10          15



Thanks in Advance...
Posted
Comments
syed shanu 29-Aug-14 3:56am    
Try using Pivot Query

1 solution

Check this Query hope this will help you.

SQL
DECLARE @cols AS NVARCHAR(MAX),
    @query  AS NVARCHAR(MAX)

select @cols = STUFF((SELECT ',' + QUOTENAME(Status) 
                     FROM Abc
             WHERE Column Name = Fieldname
             AND (DelivaryDate BETWEEN @FromDate AND @ToDate)
             GROUP BY DATEADD(DAY,0,DATEDIFF(DAY,0,DelivaryDate)) , Status
             ORDER BY DATEADD(DAY,0,DATEDIFF(DAY,0,DelivaryDate)) , Status
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'')
        
	
set @query = 'SELECT DeleiveryDate,' + @cols + ' from 
             (
               Select  SUM(Column Name) AS Total ,Status
             DATEADD(DAY,0,DATEDIFF(DAY,0,DelivaryDate))
             DeleiveryDate 
    FROM Abc
             WHERE Column Name = Fieldname
             AND (DelivaryDate BETWEEN @FromDate AND @ToDate)
             GROUP BY DATEADD(DAY,0,DATEDIFF(DAY,0,DelivaryDate)) , Status          
            ) x
            pivot 
            (
                SUM(Total)
                for Status in (' + @cols + ')
            ) p '

execute(@query)
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900