[英]SQL: How to sum and divide values in one column based on values in another column?
[英]In SQL, how to sum numerical values in one column based on string values in another column
我希望我的程序按PlantName
返回AcceptedProducts
的PlantName
。
有人可以帮我纠正我的程序吗?
CREATE PROCEDURE spAcceptedByCountry @Year INT, @Month INT
AS
SELECT CountryCode,
CountryName,
REPLACE(SUBSTRING([PlantName], CHARINDEX('-', [PlantName]), LEN([PlantName])), '-', '') AS [PlantName],
SUM(AcceptedProducts) AS AcceptedProducts
FROM vAcceptedByCountry
WHERE YEAR(DateOfManufacture) = @Year AND MONTH(DateOfManufacture) = @Month
GROUP BY CountryCode,
CountryName,
PlantName,
AcceptedProducts
ORDER BY CountryCode;
GO
感谢您的帮助。 亲切的问候。
尝试这个:
CREATE PROCEDURE spAcceptedByCountry @Year INT, @Month INT
AS
SELECT CountryCode,
CountryName,
REPLACE(SUBSTRING([PlantName], CHARINDEX('-', [PlantName]), LEN([PlantName])), '-', '') AS [PlantName],
SUM(AcceptedProducts) AS AcceptedProducts
FROM vAcceptedByCountry
WHERE YEAR(DateOfManufacture) = @Year AND MONTH(DateOfManufacture) = @Month
GROUP BY 1, 2, 3
ORDER BY CountryCode;
GO
您不想按您尝试计算的聚合进行分组。
因此,现在您正在计算每个国家/地区代码/国家/地区名称/植物名称的可接受产品,其中植物名称不是列,而是选择子句中的项目。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.