求sql代码 图中A列相同值,求每组相同值对应的B列至少包含红色部分内容,缺少的被显示出。需要对每一条代码进行说明注释。
通过group by + case when 的方式就可以判断
select [纳税人名称]
from
(
select [纳税人名称],
-- 计算是否有承揽合同这一列
max(case when [征收品目]="承揽合同" then 1 else 0 end) as has_chenglanhuoduo,
-- 计算是否有买卖合同这一列
max(case when [征收品目]="买卖合同" then 1 else 0 end) as has_maimaihuoduo,
-- 计算是否有买运输合同这一列
max(case when [征收品目]="运输合同" then 1 else 0 end) as has_yunshuhuoduo,
-- 计算是否有租赁合同这一列
max(case when [征收品目]="租赁合同" then 1 else 0 end) as has_zulinhuoduo,
-- 计算是否有包管合同这一列
max(case when [征收品目]="包管合同" then 1 else 0 end) as has_baoguanhuoduo,
-- 计算是否有仓储合同这一列
max(case when [征收品目]="仓储合同" then 1 else 0 end) as has_cangchuhuoduo,
-- 计算是否有营业帐簿这一列
max(case when [征收品目]="营业帐簿" then 1 else 0 end) as has_yingyezhangbo
from t
group by [纳税人名称]
) t
where has_chenglanhuoduo=1
and has_maimaihuoduo=1
and has_yunshuhuoduo=1
and has_zulinhuoduo=1
and has_baoguanhuoduo=1
and has_cangchuhuoduo=1
and has_yingyezhangbo=1
;
只给你提供思路,首先创建一个合同类型表作为字典,包含其中了类型
然后将当前excel数据导入sqlserver 表tb1
用合同类型作为主表左关联 tb1 ,然后进行比对