mysql sum(),不包括记录

3duebb1j  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(429)

我需要为访问号和行业代码计算fin\u sum,但是如果id在其他表中,那么我需要从计算中排除在其他表中具有id的记录,但是,如果id不是表themn中的esixst,那么应该包括它。
我有一张有下一层结构的table

create temporary table client_transactions_final
    (
    id int,
    fin_amount decimal (6,2),
    ind_code varchar(10),
    visit_number int 
    );

insert into client_transactions_final values 
    (1, 100, 'Ind 1', 2),
    (1, 300, 'Ind 2', 3),
    (2, 300, 'Ind 3', 4),
    (2, 100, 'Ind 1', 2),
    (3, 300, 'Ind 2', 3),
    (4, 300, 'Ind 3', 5),
    (5, 100, 'Ind 1', 2),
    (6, 300, 'Ind 2', 5),
    (6, 300, 'Ind 3', 4)

create temporary table term_map
(
id int
);  

insert into term_map values 
    (2),
    (4);

从这张表中,我选择了按就诊号码和行业代码进行汇总的项目

SELECT visit_number, 

        case when id in (SELECT id FROM term_map) then 
        --sum(fin_amount) do not include ids from SELECT id FROM term_map into 
        else 
        SUM(fin_amount) end revenue
    FROM
        client_transactions_final
    GROUP BY visit_number , ind_code

但是,我需要为访问号和行业代码计算fin\u sum,但是如果id在其他表中,那么我需要从计算中排除在其他表中具有id的记录,但是,如果id不是表themn中的esixst,那么应该包括它。我已经试过如何去做了,但没有一个是工作的任何想法怎么做呢?

xam8gpfp

xam8gpfp1#

尝试this:-

SELECT visit_number, 
        SUM(fin_amount) revenue
    FROM
        client_transactions_final
        where id not in (SELECT id FROM term_map)
    GROUP BY visit_number , ind_code

相关问题