如何查询出2022-10月对比2022-09新增的项目的数据 如果说2022-09=330个项目 ,2022-10=335个项目,

select
DISTINCT AMOUNT_MONTH,
SECONDARY_UNIT,
PROJECT_NAME,
PROVINCE,
CITY,
CONSTRUCTION_MODE,
ONE_LEVEL,
TWO_LEVEL,
UNIT_NAME,
UNIT_NATURE,
PROJECT_OVERVIEW,
PROJECT_MANAGER,
PROJECT_CHIEF_ENGINEER,
CONSTRUCTION_MANAGER,
BUSINESS_MANAGER,
SAFETY_DIRECTOR,
MANAGE
-- b.project_name
from "SJSB_DB"."ods_engineering_department"
where AMOUNT_MONTH = '2022-06'
UNION all
SELECT DISTINCT AMOUNT_MONTH,
SECONDARY_UNIT,
PROJECT_NAME,
PROVINCE,
CITY,
CONTRACT_TYPE AS CONSTRUCTION_MODE,
JTHYLB AS ONE_LEVEL,
JTHYLBXL AS TWO_LEVEL,
OWNER_NAME AS UNIT_NAME,
OWNER_NATURE AS UNIT_NATURE,
PROJECT_INTORDUCTION AS PROJECT_OVERVIEW,
BA_PM AS PROJECT_MANAGER,
SS_PM AS PROJECT_CHIEF_ENGINEER,
SS_ENGINEER AS CONSTRUCTION_MANAGER,
SS_ZLZG AS BUSINESS_MANAGER,
SS_AQZG AS SAFETY_DIRECTOR,
PROJECT_JTJDQK AS MANAGE
FROM "SYS"."ODS_ENGINEERING_SG_ZJXM"
where AMOUNT_MONTH = '2022-07'

img

1、利用 MINUS 减去上个月人数据就是新增的项目数据,反过来,用上个月减这个月就是上月减少(完结)的项目数据

SELECT DISTINCT AMOUNT_MONTH,(其余列省略) FROM "SJSB_DB"."ods_engineering_department" where AMOUNT_MONTH = '2022-07'
MINUS
SELECT DISTINCT AMOUNT_MONTH,(其余列省略) FROM "SJSB_DB"."ods_engineering_department" where AMOUNT_MONTH = '2022-06'

当前,前提条件是每个月这个列的数据都一致,如果有不一致,可以在SELECT部分中仅列出关键列进行MINUS,其结果再关联进行原表月份的完整列数据提取

没明白你的意思,如果是分别查出10月和9月的项目,那你就用条件查出,然后用union all 合并一起呀,还是要分别统计数量?

找一个跟项目有关的唯一列,然后条件查询10月份有而9月份没有的项目就行了,粗略看是PROJECT_NAME,代码如下

select
DISTINCT AMOUNT_MONTH,
SECONDARY_UNIT,
PROJECT_NAME,
PROVINCE,
CITY,
CONSTRUCTION_MODE,
ONE_LEVEL,
TWO_LEVEL,
UNIT_NAME,
UNIT_NATURE,
PROJECT_OVERVIEW,
PROJECT_MANAGER,
PROJECT_CHIEF_ENGINEER,
CONSTRUCTION_MANAGER,
BUSINESS_MANAGER,
SAFETY_DIRECTOR,
MANAGE
-- b.project_name
from "SJSB_DB"."ods_engineering_department"
where PROJECT_NAME in  
(SELECT PROJECT_NAME FROM "SJSB_DB"."ods_engineering_department" 
where AMOUNT_MONTH = '2022-10'
where PROJECT_NAME not in (
SELECT PROJECT_NAME FROM "SJSB_DB"."ods_engineering_department" 
where AMOUNT_MONTH = '2022-09' ) a) b

下面是10月新增的项目数据。


select
DISTINCT AMOUNT_MONTH,
SECONDARY_UNIT,
PROJECT_NAME,
PROVINCE,
CITY,
CONSTRUCTION_MODE,
ONE_LEVEL,
TWO_LEVEL,
UNIT_NAME,
UNIT_NATURE,
PROJECT_OVERVIEW,
PROJECT_MANAGER,
PROJECT_CHIEF_ENGINEER,
CONSTRUCTION_MANAGER,
BUSINESS_MANAGER,
SAFETY_DIRECTOR,
MANAGE
from "SJSB_DB"."ods_engineering_department" a
where AMOUNT_MONTH = '2022-10' and not exists
(select * from "SJSB_DB"."ods_engineering_department" b where AMOUNT_MONTH = '2022-09' and a.PROJECT_NAME = b.PROJECT_NAME);