Tsql SQL大小写求和

Tsql SQL大小写求和,tsql,Tsql,我根据客户对产品进行分组,报告我们的库存数量及其状态代码。我们使用的条件代码不是我们想要报告的,所以我使用CASE来改变这一点。条件代码中有一个产品的值为空。本产品显示两次,一次条件代码为数量7100,一次条件代码为空白数量4。我还需要使用条件代码进行分组,因为我们可以在不同的条件下使用相同的产品。对于任何空白,我需要将它们包括在A中。使用情况将空白更改为A,报告产品两次,一次7100次,一次报告4次。我需要把这两个加起来。这是我目前正在使用的代码 SELECT CLIENTNAME, PRO

我根据客户对产品进行分组,报告我们的库存数量及其状态代码。我们使用的条件代码不是我们想要报告的,所以我使用CASE来改变这一点。条件代码中有一个产品的值为空。本产品显示两次,一次条件代码为数量7100,一次条件代码为空白数量4。我还需要使用条件代码进行分组,因为我们可以在不同的条件下使用相同的产品。对于任何空白,我需要将它们包括在A中。使用情况将空白更改为A,报告产品两次,一次7100次,一次报告4次。我需要把这两个加起来。这是我目前正在使用的代码

SELECT  CLIENTNAME, PRODUCT, SUM(QUANTITY) as 'On Hand',  
        CASE (RESERVED)
            WHEN 'B' THEN 'H'
            WHEN 'I' THEN 'L'
            WHEN '0' THEN 'A'
            ELSE RESERVED
        END AS 'COND_CD'
FROM    binlocat    
GROUP BY 
        CLIENTNAME, PRODUCT, RESERVED
ORDER BY 
        PRODUCT
在分组中重复该情况,或执行替换,然后求和

;WITH T(CLIENTNAME, PRODUCT, QUANTITY, RESERVED) AS 
(
    SELECT CLIENTNAME, PRODUCT, QUANTITY,
        CASE (RESERVED)
            WHEN 'B' THEN 'H'
            WHEN 'I' THEN 'L'
            WHEN '0' THEN 'A'
            ELSE RESERVED
        END 
        FROM binlocat
) 
SELECT CLIENTNAME, PRODUCT, SUM(QUANTITY) 
FROM T
GROUP BY CLIENTNAME, PRODUCT, RESERVED
ORDER BY PRODUCT

您可以这样包装查询:

SELECT CLIENTNAME, PRODUCT, COND_CD, SUM(QUANTITY) AS 'On Hand'
FROM
(
    SELECT  CLIENTNAME, PRODUCT, QUANTITY,
        CASE (RESERVED)
            WHEN 'B' THEN 'H'
            WHEN 'I' THEN 'L'
            WHEN '0' THEN 'A'
            ELSE RESERVED
        END AS 'COND_CD'
    FROM binlocat
)
GROUP BY 
    CLIENTNAME, PRODUCT, COND_CD
ORDER BY 
    PRODUCT

内部选择创建一个表,外部选择可以在该表上进行分组。

谢谢。我还必须在第一个select语句中包含WHEN“”和A。啊,是的,我以为0是空值