【PostGresql】------ pg多表数据多个条件汇总 使用 union 方法示例代码

1. 示例代码如下: 

SELECT
		"ID",
		"DT_DATE",
		"CNAME",
		"RMAN_NAME",
		"DEP_NAME",
		"DEP_ID",
		"INVEST_MAN_NAME",
		"TYPE_NAME",
		"INVEST_LEVEL_NAME",
		"POSITION_NAME",
		"CMEMO",
	  SUM ( "YHCOUNT" ) AS "YHCOUNT",
		SUM ( "YCCOUNT" ) AS "YCCOUNT",
		SUM ( "WCCOUNT" ) AS "WCCOUNT"

FROM
	(
		(
				SELECT
					"WR"."ID",
					"WR"."DT_DATE",
					"WR"."CNAME",
					"WR"."RMAN_NAME",
					"WR"."DEP_NAME",
					"WR"."DEP_ID",
					"WR"."INVEST_MAN_NAME",
					"WR"."TYPE_NAME",
					"WR"."INVEST_LEVEL_NAME",
					"WR"."POSITION_NAME",
					"WR"."CMEMO",
					COUNT ( "APT"."WR_ID" ) AS "YHCOUNT",
					0 AS "YCCOUNT",
					0 AS "WCCOUNT"
				FROM
					"DCS_WR" AS "WR"
					LEFT JOIN "DCS_ACCIDENT_POTENTIAL" AS "APT" ON "WR"."ID" = "APT"."WR_ID" 
				WHERE
					"WR"."BILL_TYPE" = '隐患排查记录' 
					AND "WR"."ORG_ID" = '23cffbbf076a49798171ea9afbc25330' 
					AND ( "WR"."DT_DATE" >= '2024-02-18' ) 
					AND ( "WR"."DT_DATE" <= '2024-03-20' ) 
				GROUP BY
					"WR"."ID",
					"WR"."DT_DATE",
					"WR"."CNAME",
					"WR"."RMAN_NAME",
					"WR"."DEP_NAME",
					"WR"."DEP_ID",
					"WR"."INVEST_MAN_NAME",
					"WR"."TYPE_NAME",
					"WR"."INVEST_LEVEL_NAME",
					"WR"."POSITION_NAME",
					"WR"."CMEMO" 
				
			) UNION
			(
				SELECT
					"WR"."ID",
					"WR"."DT_DATE",
					"WR"."CNAME",
					"WR"."RMAN_NAME",
					"WR"."DEP_NAME",
					"WR"."DEP_ID",
					"WR"."INVEST_MAN_NAME",
					"WR"."TYPE_NAME",
					"WR"."INVEST_LEVEL_NAME",
					"WR"."POSITION_NAME",
					"WR"."CMEMO",
					0 AS "YHCOUNT",
					COUNT ( "APT"."WR_ID" ) AS "YCCOUNT",
					0 AS "WCCOUNT"
				FROM
					"DCS_WR" AS "WR"
					LEFT JOIN "DCS_ACCIDENT_POTENTIAL" AS "APT" ON "WR"."ID" = "APT"."WR_ID" 
				WHERE
					"WR"."BILL_TYPE" = '隐患排查记录' 
					AND "WR"."ORG_ID" = '23cffbbf076a49798171ea9afbc25330' 
					AND ( "WR"."DT_DATE" >= '2024-02-18' ) 
					AND ( "WR"."DT_DATE" <= '2024-03-20' ) 
					and  ("APT"."STATUS_NAME"='已复查' or "APT"."STATUS_NAME"='待复查')
				GROUP BY
					"WR"."ID",
					"WR"."DT_DATE",
					"WR"."CNAME",
					"WR"."RMAN_NAME",
					"WR"."DEP_NAME",
					"WR"."DEP_ID",
					"WR"."INVEST_MAN_NAME",
					"WR"."TYPE_NAME",
					"WR"."INVEST_LEVEL_NAME",
					"WR"."POSITION_NAME",
					"WR"."CMEMO" 
				
			) 
			 UNION
			(
				SELECT
					"WR"."ID",
					"WR"."DT_DATE",
					"WR"."CNAME",
					"WR"."RMAN_NAME",
					"WR"."DEP_NAME",
					"WR"."DEP_ID",
					"WR"."INVEST_MAN_NAME",
					"WR"."TYPE_NAME",
					"WR"."INVEST_LEVEL_NAME",
					"WR"."POSITION_NAME",
					"WR"."CMEMO",
					0 AS "YHCOUNT",
					0 AS "YCCOUNT",
					COUNT ( "APT"."WR_ID" ) AS "WCCOUNT"
				FROM
					"DCS_WR" AS "WR"
					LEFT JOIN "DCS_ACCIDENT_POTENTIAL" AS "APT" ON "WR"."ID" = "APT"."WR_ID" 
				WHERE
					"WR"."BILL_TYPE" = '隐患排查记录' 
					AND "WR"."ORG_ID" = '23cffbbf076a49798171ea9afbc25330' 
					AND ( "WR"."DT_DATE" >= '2024-02-18' ) 
					AND ( "WR"."DT_DATE" <= '2024-03-20' ) 
					and  "APT"."STATUS_NAME"!='已复查' AND "APT"."STATUS_NAME"!='待复查'
				GROUP BY
					"WR"."ID",
					"WR"."DT_DATE",
					"WR"."CNAME",
					"WR"."RMAN_NAME",
					"WR"."DEP_NAME",
					"WR"."DEP_ID",
					"WR"."INVEST_MAN_NAME",
					"WR"."TYPE_NAME",
					"WR"."INVEST_LEVEL_NAME",
					"WR"."POSITION_NAME",
					"WR"."CMEMO" 
				
			) 
	) "T"
	

WHERE
	( 1 = 1 )   and ("YHCOUNT">0 OR "WCCOUNT">0 OR "YCCOUNT">0)

GROUP BY 
	
		"ID",
		"DT_DATE",
		"CNAME",
		"RMAN_NAME",
		"DEP_NAME",
		"DEP_ID",
		"INVEST_MAN_NAME",
		"TYPE_NAME",
		"INVEST_LEVEL_NAME",
		"POSITION_NAME",
		"CMEMO"
ORDER BY
	"DT_DATE" DESC 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮皮冰要做大神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值