首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

怎么将视图与存储过程里的逻辑合并

2012-05-04 
如何将视图与存储过程里的逻辑合并公司使用ORM,且强制所有的数据都必须以表或视图的方式获取.本人现在遇到

如何将视图与存储过程里的逻辑合并
公司使用ORM,且强制所有的数据都必须以表或视图的方式获取.本人现在遇到个问题,视图代码如下:

SQL code
DROP VIEW CHGT.V_PHJG_INFO_JKSJY;CREATE OR REPLACE VIEW CHGT.V_PHJG_INFO_JKSJYAS (    /*    监控数据源        项目名称:XMMC, 申请用地单位名称:SQRMC, 法人:FRDBXM, 法人办公电话:FRDBDHHM, 法人移动电话:    单位地址:TXDZ, 联系人电话:LXDH, 电子邮件:EMAIL, 邮政编码:YZBM        合同ID或决定书ID:ID,     合同或决定书编号:HTBH, 电子监管号:DZJGH, 批准书文号: PZSWH, 供应方式:GDYWLX    坐落:TDZL, 行政区域:XZQY, 供地面积:GDMJ, 金额:JE, 签定日期:QDRQ    约定交地时间:YDJDSJ, 约定开工时间:YDKGSJ, 约定竣工时间:YDJGSJ    变更交地时间:BGJDSJ, 变更开工时间:BGKGSJ, 变更竣工时间:BGJGSJ    实际交地时间:SJJDSJ, 实际开工时间:SJKGSJ, 实际竣工时间:SJJGSJ    复核验收时间:FHYSSJ        容积率最小值:RJLZXZ    容积率最大值:RJLZDZ    绿化率最小值:LHLZXZ    绿化率最大值:LHLZDZ    建筑密度最小值:JZMDZXZ    建筑密度最大值:JZMDZDZ    约定开发投资额:YDKFTZE    投资强度:TZQD    建筑总面积:JZZMJ    建筑限高最小值:JZXGZXZ    建筑限高最大值:JZXGZDZ    土地用途:TDYTBM        当前阶段:DQJD    是否疑似:SFYS    疑似类别:YSLB    */    --第一层    SELECT         项目名称 xmmc, 申请用地单位名称 SQRMC, 法人 FRDBXM, 法人办公电话 FRDBDHHM, 法人移动电话 SJHM,        单位地址 TXDZ, 联系人电话 LXDH, 电子邮件 EMAIL, 邮政编码 YZBM,                合同ID ID, 编号 HTBH, 电子监管号 DZJGH, 批准书文号 PZSWH,         CASE         WHEN 供应方式 IS NULL THEN '国有土地公开出让'        WHEN 供应方式 = '1' THEN '国有土地公开出让'        WHEN 供应方式 = '2' THEN '国有土地协议出让'        WHEN 供应方式 = '3' THEN '国有土地划拨'        END GDYWLX,        坐落 TDZL, 行政区域 XZQY, 供地面积 CRMJ, 金额 CRJE, 签订日期 HTQDRQ,                约定交地时间 YDJDSJ, 约定开工时间 YDKGSJ, 约定竣工时间 YDJGSJ,        BGJDSJ, BGKGSJ, BGJGSJ,        SJJDSJ, SJKGSJ, SJJGSJ,        FHYSSJ,                 容积率最小值 RJLZXZ, 容积率最大值 RJLZDZ, 绿化率最小值 LHLZXZ, 绿化率最大值 LHLZDZ,        建筑密度最小值 JZMDZXZ, 建筑密度最大值 JZMDZDZ, 约定开发投资额 YDKFTZE, 投资强度 TZQD,        建筑总面积 JZZMJ, 建筑限高最小值 JZXGZXZ, 建筑限高最大值 JZXGZDZ, 土地用途 TDYT,                CASE            WHEN SJJDSJ IS NULL  THEN '交地阶段'            WHEN SJKGSJ IS NULL  THEN '开工阶段'            WHEN SJJGSJ IS NULL  THEN '建设及竣工阶段'            WHEN FHYSSJ IS NULL  THEN '复核验收阶段'         END DQJD, NULL SFYS, NULL YSLB    FROM     (        --第二层        SELECT * FROM        (            --第三层            SELECT                 xm.XMMC 项目名称, sqr.SQRMC 申请用地单位名称, sqr.FRDBXM 法人, sqr.FRDBDHHM 法人办公电话, sqr.SJHM 法人移动电话,                 sqr.TXDZ 单位地址, sqr.LXDH 联系人电话, sqr.EMAIL 电子邮件, sqr.YZBM 邮政编码,                                ht.ID 合同ID, ht.HTBH 编号, ht.DZJGH 电子监管号, pzs.PZSWH 批准书文号, gd.GDYWLX 供应方式,                zd.TDZL 坐落, qy.XZQY 行政区域, zd.CRMJ 供地面积, crj.CRJE 金额, qtxx.HTQDRQ 签订日期,                            zd.YDJDSJ 约定交地时间, yd.YDDGSJ 约定开工时间, yd.YDJGSJ 约定竣工时间,                                yd.RJLZXZ 容积率最小值, yd.RJLZDZ 容积率最大值, yd.LHLZXZ 绿化率最小值, yd.LHLZDZ 绿化率最大值,                yd.JZMDZXZ 建筑密度最小值, yd.JZMDZDZ 建筑密度最大值, yd.YDKFTZE 约定开发投资额, yd.TZQD 投资强度,                yd.JZZMJ 建筑总面积, yd.JZXGZXZ 建筑限高最小值, yd.JZXGZDZ 建筑限高最大值, tdyt.NAME 土地用途            FROM YDGD_INFO_GDHT ht                JOIN YDGL_INFO_XM xm ON xm.ID = ht.XMID                JOIN BIZ_INFO_SQR sqr ON xm.dwid = sqr.ID                JOIN YDGD_INFO_GDHTCRZD zd ON ht.ID = zd.GDHTID                JOIN YDGD_INFO_GDHTCRJZFYD crj ON ht.ID = crj.GDHTID                JOIN YDGD_INFO_GDHTQTXX qtxx ON qtxx.GDHTID = ht.ID                JOIN YDGD_INFO_GDHTTDKFLYYJSYD yd ON ht.ID = yd.GDHTID                LEFT JOIN                (                    SELECT qy.GDHTID, wmsys.wm_concat(xzqh.NAME) XZQY FROM YDGD_INFO_GDHTZDSZQY qy                        JOIN BIZ_DICT_XZQH xzqh ON qy.SZXZQ = xzqh.CODE                    GROUP BY qy.GDHTID                ) qy ON qy.GDHTID = ht.ID                LEFT JOIN BIZ_DICT_TDYT tdyt ON tdyt.CODE = zd.ZYTDYTBM                LEFT JOIN YDGD_INFO_JSYDGD gd ON gd.GDHTID = ht.ID                LEFT JOIN YDGD_INFO_JSYDPZS pzs ON gd.JSYDPZSID = pzs.ID            WHERE ht.GDHTZT != -1            UNION all            SELECT                 xm.XMMC 项目名称, sqr.SQRMC 申请用地单位名称, sqr.FRDBXM 法人, sqr.FRDBDHHM 法人办公电话, sqr.SJHM 法人移动电话,                 sqr.TXDZ 单位地址, sqr.LXDH 联系人电话, sqr.EMAIL 电子邮件, sqr.YZBM 邮政编码,                                jds.ID 合同ID, jds.HBSBH 编号, jds.DZJGH 电子监管号, pzs.PZSWH 批准书文号, gd.GDYWLX 供应方式,                zd.TDZL 坐落, qy.XZQY 行政区域, zd.HBMJ 供地面积, zd.HBJ 金额, jds.QFSJ 签订日期,                                yd.YDJDSJ 约定交地时间, yd.KGRQ 约定开工时间, yd.JGRQ 约定竣工时间,                                            yd.RJLZXZ 容积率最小值, yd.RJLZDZ 容积率最大值, yd.LHLZXZ 绿化率最小值, yd.LHLZDZ 绿化率最大值,                yd.JZMDZXZ 建筑密度最小值, yd.JZMDZDZ 建筑密度最大值, null 约定开发投资额, null 投资强度,                yd.ZJZMJ 建筑总面积, nvl(yd.DSJZXGZXZ, 0) + nvl(yd.DXJZXGZXZ, 0) 建筑限高最小值, nvl(yd.DSJZXGZDZ, 0) + nvl(yd.DXJZXGZDZ, 0) 建筑限高最大值, tdyt.NAME 土地用途            FROM YDGD_INFO_HBJDS jds                JOIN YDGL_INFO_XM xm ON xm.ID = jds.XMID                JOIN BIZ_INFO_SQR sqr ON xm.dwid = sqr.ID                JOIN YDGD_INFO_HBJDSZDXX zd ON jds.ID = zd.HBJDSID                JOIN YDGD_INFO_HBJDSTDKFLYYJSYD yd ON jds.ID = yd.HBJDSID                LEFT JOIN                (                    SELECT qy.HBJDSID, wmsys.wm_concat(xzqh.NAME) XZQY FROM YDGD_INFO_HBJDSZDSZQY qy                        JOIN BIZ_DICT_XZQH xzqh ON qy.SZXZQ = xzqh.CODE                    GROUP BY qy.HBJDSID                ) qy ON qy.HBJDSID = jds.ID                LEFT JOIN BIZ_DICT_TDYT tdyt ON tdyt.CODE = zd.ZDYTBM                LEFT JOIN YDGD_INFO_JSYDGD gd ON gd.HBJDSID = jds.ID                LEFT JOIN YDGD_INFO_JSYDPZS pzs ON gd.JSYDPZSID = pzs.ID            WHERE jds.HBJDSZT != -1        ) sjy            LEFT JOIN PHJG_INFO_GDKZB kzb ON sjy.合同ID = kzb.ID        WHERE sjy.供应方式 is NULL OR sjy.供应方式 IN ('1', '2', '3')        ORDER BY sjy.签订日期 DESC    )) 


可以看到这个视图分三层,最里面一层把两个查询进行union all,第二层则是做了一个简单的联合查询,最外层的则是对查出的结果进行一些处理,比如别名呀,简单的Case呀等,现在的问题就是最后两个字段,SFYS与YSLB,他是由其它多个字段的数据与更复杂的逻辑计算出来的,我暂时写在存储过程里,代码如下
SQL code
--中间变量, tmpDate DATEIF (DQJD = '交地阶段') THEN    IF (YDJDSJ IS NULL AND BGJDSJ IS NULL) THEN        --如果两边都没时间,则直接疑似        UPDATE tmpData SET SFYS = '是', YSLB = '疑似交地违约' WHERE NUM = curNum;    ELSE        --如果有变更时间,就以变更时间为准,否则以约定时间为准        IF (YDJDSJ IS NOT NULL AND BGJDSJ IS NULL) THEN            tmpDate := YDJDSJ;        ELSE            tmpDate := BGJDSJ;        END IF;        --9个月为预警期        IF (add_months(tmpDate, 9) < current_date) THEN            UPDATE tmpData SET SFYS = '是', YSLB = '疑似交地违约' WHERE NUM = curNum;        ELSE            UPDATE tmpData SET SFYS = '否', YSLB = '正常' WHERE NUM = curNum;        END IF;    END IF;ELSIF (DQJD = '建设及竣工阶段') THEN    IF (YDJGSJ IS NULL AND BGJGSJ IS NULL) THEN        --如果两边都没时间,则直接疑似        UPDATE tmpData SET SFYS = '是', YSLB = '疑似竣工违约' WHERE NUM = curNum;    ELSE        --如果有变更时间,就以变更时间为准,否则以约定时间为准        IF (YDJGSJ IS NOT NULL AND BGJGSJ IS NULL) THEN            tmpDate := YDJGSJ;        ELSE            tmpDate := BGJGSJ;        END IF;        --9个月为预警期        IF (add_months(tmpDate, 9) < current_date) THEN            UPDATE tmpData SET SFYS = '是', YSLB = '疑似竣工违约' WHERE NUM = curNum;        ELSE            UPDATE tmpData SET SFYS = '否', YSLB = '正常' WHERE NUM = curNum;        END IF;    END IF;ELSIF (DQJD = '开工阶段') THEN    IF (YDKGSJ IS NULL AND BGKGSJ IS NULL) THEN        --如果两边都没时间,则直接闲置        UPDATE tmpData SET SFYS = '是', YSLB = '疑似闲置' WHERE NUM = curNum;    ELSE        --如果有变更时间,就以变更时间为准,否则以约定时间为准        IF (YDKGSJ IS NOT NULL AND BGKGSJ IS NULL) THEN            tmpDate := YDKGSJ;        ELSE            tmpDate := BGKGSJ;        END IF;        --9个月为预警期,12个月为闲置期        IF (add_months(tmpDate, 12) < current_date) THEN            UPDATE tmpData SET SFYS = '是', YSLB = '疑似闲置' WHERE NUM = curNum;        ELSIF (add_months(tmpDate, 9) < current_date) THEN            UPDATE tmpData SET SFYS = '是', YSLB = '开工违约' WHERE NUM = curNum;        ELSE            UPDATE tmpData SET SFYS = '否', YSLB = '正常' WHERE NUM = curNum;        END IF;    END IF;ELSE    UPDATE tmpData SET SFYS = '否', YSLB = '正常' WHERE NUM = curNum;END IF;

我想了很多办法,看能不能把这段逻辑并到视图里去,但总不能成功,请问下这里的高手有没有什么好的办法呢?

[解决办法]
1 用with写法减少篇幅
2 把存储过程改成自定义函数,在sql中使用函数
3 用存储过程实现全部逻辑,返回一个动态游标sys_refcursor
[解决办法]

用case做多重判断

DROP VIEW CHGT.V_PHJG_INFO_JKSJY;

CREATE OR REPLACE VIEW CHGT.V_PHJG_INFO_JKSJY
AS (
/*
监控数据源

项目名称:XMMC, 申请用地单位名称:SQRMC, 法人:FRDBXM, 法人办公电话:FRDBDHHM, 法人移动电话:
单位地址:TXDZ, 联系人电话:LXDH, 电子邮件:EMAIL, 邮政编码:YZBM

合同ID或决定书ID:ID, 合同或决定书编号:HTBH, 电子监管号:DZJGH, 批准书文号: PZSWH, 供应方式:GDFS
坐落:TDZL, 行政区域:XZQY, 供地面积:CRMJ, 金额:CRJE, 签定日期:HTQDRQ

约定交地时间:YDJDSJ, 约定开工时间:YDKGSJ, 约定竣工时间:YDJGSJ
变更交地时间:BGJDSJ, 变更开工时间:BGKGSJ, 变更竣工时间:BGJGSJ
实际交地时间:SJJDSJ, 实际开工时间:SJKGSJ, 实际竣工时间:SJJGSJ
复核验收时间:FHYSSJ

容积率最小值:RJLZXZ
容积率最大值:RJLZDZ
绿化率最小值:LHLZXZ
绿化率最大值:LHLZDZ
建筑密度最小值:JZMDZXZ
建筑密度最大值:JZMDZDZ
约定开发投资额:YDKFTZE
投资强度:TZQD
建筑总面积:JZZMJ
建筑限高最小值:JZXGZXZ
建筑限高最大值:JZXGZDZ
土地用途:TDYT

当前阶段:DQJD
是否疑似:SFYS
疑似类别:YSLB
*/
--第一层
SELECT 
项目名称 xmmc, 申请用地单位名称 SQRMC, 法人 FRDBXM, 法人办公电话 FRDBDHHM, 法人移动电话 SJHM,
单位地址 TXDZ, 联系人电话 LXDH, 电子邮件 EMAIL, 邮政编码 YZBM,

主键 ID, 合同ID HTID, 决定书ID jdsid, 编号 HTBH, 电子监管号 DZJGH, 批准书文号 PZSWH, 供应方式 GDFS,
/*
CASE 


WHEN 供应方式 IS NULL THEN '国有土地公开出让'
WHEN 供应方式 = '1' THEN '国有土地公开出让'
WHEN 供应方式 = '2' THEN '国有土地协议出让'
WHEN 供应方式 = '3' THEN '国有土地划拨'
END GDYWLX,
*/
坐落 TDZL, 行政区域 XZQY, 供地面积 CRMJ, 金额 CRJE, 签订日期 HTQDRQ,

约定交地时间 YDJDSJ, 约定开工时间 YDKGSJ, 约定竣工时间 YDJGSJ,
BGJDSJ, BGKGSJ, BGJGSJ,
SJJDSJ, SJKGSJ, SJJGSJ,
FHYSSJ, 

容积率最小值 RJLZXZ, 容积率最大值 RJLZDZ, 绿化率最小值 LHLZXZ, 绿化率最大值 LHLZDZ,
建筑密度最小值 JZMDZXZ, 建筑密度最大值 JZMDZDZ, 约定开发投资额 YDKFTZE, 投资强度 TZQD,
建筑总面积 JZZMJ, 建筑限高最小值 JZXGZXZ, 建筑限高最大值 JZXGZDZ, 土地用途 TDYT,

CASE
WHEN SJJDSJ IS NULL THEN '交地阶段'
WHEN SJKGSJ IS NULL THEN '开工阶段'
WHEN SJJGSJ IS NULL THEN '建设及竣工阶段'
WHEN FHYSSJ IS NULL THEN '复核验收阶段' 
END DQJD,
CASE
--交地阶段
--如果两边都没时间,则直接疑似
--如果有变更时间,就以变更时间为准,否则以约定时间为准
--3个月为预警期
WHEN sjjdsj IS NULL AND 约定交地时间 IS NULL AND BGJDSJ IS NULL THEN '是'
WHEN sjjdsj IS NULL AND add_months(nvl(BGJDSJ, 约定交地时间), -3) < CURRENT_DATE THEN '是'
WHEN sjjdsj IS NULL AND add_months(nvl(BGJDSJ, 约定交地时间), -3) >= CURRENT_DATE THEN '否'
--开工阶段
WHEN sjkgsj IS NULL AND 约定开工时间 IS NULL AND BGKGSJ IS NULL THEN '是'
WHEN sjkgsj IS NULL AND add_months(nvl(BGKGSJ, 约定开工时间), 9) < CURRENT_DATE THEN '是'--闲置地为9个月
WHEN sjkgsj IS NULL AND add_months(nvl(BGKGSJ, 约定开工时间), -3) < CURRENT_DATE THEN '是'
WHEN sjkgsj IS NULL AND add_months(nvl(BGKGSJ, 约定开工时间), -3) >= CURRENT_DATE THEN '否'
--建设及竣工阶段
WHEN sjjgsj IS NULL AND 约定竣工时间 IS NULL AND BGJGSJ IS NULL THEN '是'
WHEN sjjgsj IS NULL AND add_months(nvl(BGJGSJ, 约定竣工时间), -3) < CURRENT_DATE THEN '是'
WHEN sjjgsj IS NULL AND add_months(nvl(BGJGSJ, 约定竣工时间), -3) >= CURRENT_DATE THEN '否'
END SFYS,
CASE
--交地阶段
WHEN sjjdsj IS NULL AND 约定交地时间 IS NULL AND BGJDSJ IS NULL THEN '疑似交地违约'
WHEN sjjdsj IS NULL AND add_months(nvl(BGJDSJ, 约定交地时间), -3) < CURRENT_DATE THEN '疑似交地违约'
WHEN sjjdsj IS NULL AND add_months(nvl(BGJDSJ, 约定交地时间), -3) >= CURRENT_DATE THEN '正常'
--开工阶段
WHEN sjkgsj IS NULL AND 约定开工时间 IS NULL AND BGKGSJ IS NULL THEN '疑似闲置'
WHEN sjkgsj IS NULL AND add_months(nvl(BGKGSJ, 约定开工时间), 9) < CURRENT_DATE THEN '疑似闲置'
WHEN sjkgsj IS NULL AND add_months(nvl(BGKGSJ, 约定开工时间), -3) < CURRENT_DATE THEN '疑似开工违约'
WHEN sjkgsj IS NULL AND add_months(nvl(BGKGSJ, 约定开工时间), -3) >= CURRENT_DATE THEN '正常'
--建设及竣工阶段
WHEN sjjgsj IS NULL AND 约定竣工时间 IS NULL AND BGJGSJ IS NULL THEN '疑似竣工违约'
WHEN sjjgsj IS NULL AND add_months(nvl(BGJGSJ, 约定竣工时间), -3) < CURRENT_DATE THEN '疑似竣工违约'
WHEN sjjgsj IS NULL AND add_months(nvl(BGJGSJ, 约定竣工时间), -3) >= CURRENT_DATE THEN '正常'
END YSLB
FROM 
(
--第二层
SELECT * FROM
(
--第三层
SELECT 
xm.XMMC 项目名称, sqr.SQRMC 申请用地单位名称, sqr.FRDBXM 法人, sqr.FRDBDHHM 法人办公电话, sqr.SJHM 法人移动电话, 
sqr.TXDZ 单位地址, sqr.LXDH 联系人电话, sqr.EMAIL 电子邮件, sqr.YZBM 邮政编码,

ht.ID 主键, ht.ID 合同ID, NULL 决定书ID, ht.HTBH 编号, ht.DZJGH 电子监管号, pzs.PZSWH 批准书文号, crfs.NAME 供应方式, --gd.GDYWLX 供应方式,
zd.TDZL 坐落, qy.XZQY 行政区域, zd.CRMJ 供地面积, crj.CRJE 金额, qtxx.HTQDRQ 签订日期,

zd.YDJDSJ 约定交地时间, yd.YDDGSJ 约定开工时间, yd.YDJGSJ 约定竣工时间,

yd.RJLZXZ 容积率最小值, yd.RJLZDZ 容积率最大值, yd.LHLZXZ 绿化率最小值, yd.LHLZDZ 绿化率最大值,
yd.JZMDZXZ 建筑密度最小值, yd.JZMDZDZ 建筑密度最大值, yd.YDKFTZE 约定开发投资额, yd.TZQD 投资强度,
yd.JZZMJ 建筑总面积, yd.JZXGZXZ 建筑限高最小值, yd.JZXGZDZ 建筑限高最大值, tdyt.NAME 土地用途


FROM YDGD_INFO_GDHT ht
JOIN YDGL_INFO_XM xm ON xm.ID = ht.XMID
JOIN BIZ_INFO_SQR sqr ON ht.SRRID = sqr.ID
JOIN YDGD_INFO_GDHTCRZD zd ON ht.ID = zd.GDHTID
JOIN YDGD_INFO_GDHTCRJZFYD crj ON ht.ID = crj.GDHTID
JOIN YDGD_INFO_GDHTQTXX qtxx ON qtxx.GDHTID = ht.ID
JOIN YDGD_INFO_GDHTTDKFLYYJSYD yd ON ht.ID = yd.GDHTID
LEFT JOIN
(
SELECT qy.GDHTID, wmsys.wm_concat(xzqh.NAME) XZQY FROM YDGD_INFO_GDHTZDSZQY qy
JOIN BIZ_DICT_XZQH xzqh ON qy.SZXZQ = xzqh.CODE
GROUP BY qy.GDHTID
) qy ON qy.GDHTID = ht.ID
LEFT JOIN YDGD_DICT_CRFS crfs ON ht.CRFSBM = crfs.CODE
LEFT JOIN BIZ_DICT_TDYT tdyt ON tdyt.CODE = zd.ZYTDYTBM
LEFT JOIN YDGD_INFO_JSYDGD gd ON gd.GDHTID = ht.ID
LEFT JOIN YDGD_INFO_JSYDPZS pzs ON gd.JSYDPZSID = pzs.ID
WHERE ht.GDHTZT != -1
UNION all
SELECT 
xm.XMMC 项目名称, sqr.SQRMC 申请用地单位名称, sqr.FRDBXM 法人, sqr.FRDBDHHM 法人办公电话, sqr.SJHM 法人移动电话, 
sqr.TXDZ 单位地址, sqr.LXDH 联系人电话, sqr.EMAIL 电子邮件, sqr.YZBM 邮政编码,

jds.ID 主键, null 合同ID, jds.ID 决定书ID, jds.HBSBH 编号, jds.DZJGH 电子监管号, pzs.PZSWH 批准书文号, '划拨' 供应方式,--gd.GDYWLX 供应方式,
zd.TDZL 坐落, qy.XZQY 行政区域, zd.HBMJ 供地面积, zd.HBJ 金额, jds.QFSJ 签订日期,

yd.YDJDSJ 约定交地时间, yd.KGRQ 约定开工时间, yd.JGRQ 约定竣工时间,

yd.RJLZXZ 容积率最小值, yd.RJLZDZ 容积率最大值, yd.LHLZXZ 绿化率最小值, yd.LHLZDZ 绿化率最大值,
yd.JZMDZXZ 建筑密度最小值, yd.JZMDZDZ 建筑密度最大值, null 约定开发投资额, null 投资强度,
yd.ZJZMJ 建筑总面积, nvl(yd.DSJZXGZXZ, 0) + nvl(yd.DXJZXGZXZ, 0) 建筑限高最小值, nvl(yd.DSJZXGZDZ, 0) + nvl(yd.DXJZXGZDZ, 0) 建筑限高最大值, tdyt.NAME 土地用途
FROM YDGD_INFO_HBJDS jds
JOIN YDGL_INFO_XM xm ON xm.ID = jds.XMID
JOIN BIZ_INFO_SQR sqr ON jds.SYQRID = sqr.ID
JOIN YDGD_INFO_HBJDSZDXX zd ON jds.ID = zd.HBJDSID
JOIN YDGD_INFO_HBJDSTDKFLYYJSYD yd ON jds.ID = yd.HBJDSID
LEFT JOIN
(
SELECT qy.HBJDSID, wmsys.wm_concat(xzqh.NAME) XZQY FROM YDGD_INFO_HBJDSZDSZQY qy
JOIN BIZ_DICT_XZQH xzqh ON qy.SZXZQ = xzqh.CODE
GROUP BY qy.HBJDSID
) qy ON qy.HBJDSID = jds.ID
LEFT JOIN BIZ_DICT_TDYT tdyt ON tdyt.CODE = zd.ZDYTBM
LEFT JOIN YDGD_INFO_JSYDGD gd ON gd.HBJDSID = jds.ID
LEFT JOIN YDGD_INFO_JSYDPZS pzs ON gd.JSYDPZSID = pzs.ID
WHERE jds.HBJDSZT != -1
) sjy
LEFT JOIN PHJG_INFO_GDKZB kzb ON sjy.主键 = kzb.ID
--WHERE sjy.供应方式 is NULL OR sjy.供应方式 IN ('1', '2', '3')
ORDER BY sjy.签订日期 DESC
)
)

热点排行