sql 自定义自动计算

img

特点:FS类的品相会不定日期出现,也有可能当日会没有任何FS类的产品数据出现,一般品相均为 X-FS 后面是固定格式 FS 为标识

x-FS这种内容可以先处理掉变为FS,然后再按照日期了类型sum聚合下。还有题主什么数据库?MSSQL用下面的


select 日期,类型,SUM(数据)数据
from(
select  日期,case when CHARINDEX('FS',类型)>0 then 'FC' else 类型 end 类型,数据 from t)t
group by t.日期,t.类型
order by t.日期


DECLARE @表格 TABLE
(
    日期 VARCHAR(10),
    类型 VARCHAR(10),
    数据 INT
);
INSERT  @表格
    (
        日期, 类型, 数据
    )
VALUES
    ('7.1', 'A', 41),
    ('7.1', 'B', 22),
    ('7.1', 'C', 39),
    ('7.1', 'A-FS', 3),
    ('7.1', 'B-FS', 6),
    ('7.2', 'C', 21),
    ('7.2', 'A-FS', 7),
    ('7.2', 'B-FS', 9),
    ('7.2', 'C-FS', 11);
SELECT      日期, CASE WHEN 类型 LIKE '%FS' THEN 'FS' ELSE 类型 END 类型, SUM(数据) 数据
FROM        @表格
GROUP BY    日期, CASE WHEN 类型 LIKE '%FS' THEN 'FS' ELSE 类型 END
ORDER BY 日期,类型

SELECT      日期, 
CASE WHEN 类型 LIKE '%–FS' THEN 'FS' ELSE 类型 END 类型, 
SUM(数据) 数据
FROM        表名
GROUP BY    日期, CASE WHEN 类型 LIKE '%–FS' THEN 'FS' ELSE 类型 END
ORDER BY 日期,类型
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632

都很好解决了问题,只能按时间先后顺序来采纳,感谢各位

好气呀,我为啥才看到