DECLARE @Id AS VARCHAR(50)
SET @Id = 'Apple'
IF @Id IS NULL
BEGIN
SELECT ID,
SUM(ISNULL(Total1,0)) AS Total1,
SUM(ISNULL(Total2,0)) AS Total2,
SUM(ISNULL(Total3,0)) AS Total3
FROM Table
GROUP BY ID
END
ELSE
SELECT ID,
SUM(ISNULL(Total1,0)) AS Total1,
SUM(ISNULL(Total2,0)) AS Total2,
SUM(ISNULL(Total3,0)) AS Total3
FROM Table
WHERE ID = @Id
GROUP BY ID
BEGIN
END
编辑
你可能需要这个
DECLARE @Id AS VARCHAR(50)
SET @Id = 'Apple'
IF @Id IS NULL
BEGIN
SELECT ID,
(SELECT SUM(Total1) FROM Table WHERE ID = T.ID AND SubId = 'Fruit') AS FruitTotal,
(SELECT SUM(Total2) FROM Table WHERE ID = T.ID AND SubId = 'Veggies') AS VeggiesTotal
SUM(ISNULL(Total3,0)) AS Total3
FROM Table T
GROUP BY ID
END
ELSE
SELECT ID,
(SELECT SUM(Total1) FROM Table WHERE ID = T.ID AND SubId = 'Fruit') AS FruitTotal,
(SELECT SUM(Total2) FROM Table WHERE ID = T.ID AND SubId = 'Veggies') AS VeggiesTotal
SUM(ISNULL(Total3,0)) AS Total3
FROM Table T
WHERE ID = @Id
GROUP BY ID
BEGIN
END