Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Regrouper par nombre et nombre total

Vous pouvez utiliser un case expression basée sur @Month :

SELECT   ProductCode, 
         SUM (CASE WHEN MONTH(EntryDate) = @Month THEN Quantity ELSE 0 END) 
           AS MonthCount,
         SUM (Quantity) AS TotalConount
FROM     ProductMaster
GROUP BY ProductCode

EDIT :
Pour répondre à la question modifiée, vous pouvez utiliser la même technique avec count au lieu de sum :

SELECT   ProductCode, 
         COUNT (CASE WHEN MONTH(EntryDate) = @Month THEN Quantity ELSE NULL END) 
           AS MonthCount,
         COUNT (*) AS TotalConount
FROM     ProductMaster
GROUP BY ProductCode