繁体   English   中英

在SQL中,如何根据另一列中的字符串值对一列中的数值求和

[英]In SQL, how to sum numerical values in one column based on string values in another column

我希望我的程序按PlantName返回AcceptedProductsPlantName

有人可以帮我纠正我的程序吗?

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM