想问一个sql语句的写法或者这个需求怎么实现?谢谢大家
现在有两个表,第一个表是主表字段大概为
-- 合同信息表
create table CONTRACT_INFO
(
MAIN_DOC_ID VARCHAR2(32) not null,---主文档ID,唯一
CONTRACT_NAME VARCHAR2(256),--合同名称
STOCK_TYPE VARCHAR2(128),--采购类型
CONTRACT_COST NUMBER(16,4)---合同金额
)
--合同临时表
create table CONTRACT_TEMP
(
CONTRACT_ID VARCHAR2(32) not null,---主键 唯一,和CONTRACT_INFO中的MAIN_DOC_ID关联
KEY_WORD VARCHAR2(128),--关键字
VALUE VARCHAR2(512)---内容
)
select * from contract_info
main_doc_id contract_name stock_type contract_cost
E9B3BAC1CF8C0733482570EC002E586A 合同A 省公司统谈统签 1150现在是这样的,我 要修改CONTRACT_INFO的字段的数值,比如我要修改一条合同信息表(CONTRACT_INFO)STOCK_TYPE
数值,将 '省公司统谈统签' 改为'地市分公司统谈统签' 但我不能修改原表中的数值,也就是不能CONTRACT_INFO,我只能取出main_doc_id,stock_type,以及它所对应的值,
插入到合同临时表中来,合同临时表就新增了一条数据。
这样 合同临时表就会
select * from contract_temp
contract_id key_word value
E9B3BAC1CF8C0733482570EC002E586A stock_type 地市分公司统谈统签
原合同信息表记录没有变。现在我要按照stock_type来取得contract_cost的数值,如果不考虑到合同临时表,我就应该这样来写sql语句。
select distinct stock_type,sum(contract_cost) from contract_info
但这样就不是取得的真实数据,我要把修改之后的数据取出来,这个sql语句应该怎么写?不知道我说清楚了没有,谢谢大家。 如果不清楚,可以加入我这个群进行讨论2749375 JAVA-ORACLE群
现在有两个表,第一个表是主表字段大概为
-- 合同信息表
create table CONTRACT_INFO
(
MAIN_DOC_ID VARCHAR2(32) not null,---主文档ID,唯一
CONTRACT_NAME VARCHAR2(256),--合同名称
STOCK_TYPE VARCHAR2(128),--采购类型
CONTRACT_COST NUMBER(16,4)---合同金额
)
--合同临时表
create table CONTRACT_TEMP
(
CONTRACT_ID VARCHAR2(32) not null,---主键 唯一,和CONTRACT_INFO中的MAIN_DOC_ID关联
KEY_WORD VARCHAR2(128),--关键字
VALUE VARCHAR2(512)---内容
)
select * from contract_info
main_doc_id contract_name stock_type contract_cost
E9B3BAC1CF8C0733482570EC002E586A 合同A 省公司统谈统签 1150现在是这样的,我 要修改CONTRACT_INFO的字段的数值,比如我要修改一条合同信息表(CONTRACT_INFO)STOCK_TYPE
数值,将 '省公司统谈统签' 改为'地市分公司统谈统签' 但我不能修改原表中的数值,也就是不能CONTRACT_INFO,我只能取出main_doc_id,stock_type,以及它所对应的值,
插入到合同临时表中来,合同临时表就新增了一条数据。
这样 合同临时表就会
select * from contract_temp
contract_id key_word value
E9B3BAC1CF8C0733482570EC002E586A stock_type 地市分公司统谈统签
原合同信息表记录没有变。现在我要按照stock_type来取得contract_cost的数值,如果不考虑到合同临时表,我就应该这样来写sql语句。
select distinct stock_type,sum(contract_cost) from contract_info
但这样就不是取得的真实数据,我要把修改之后的数据取出来,这个sql语句应该怎么写?不知道我说清楚了没有,谢谢大家。 如果不清楚,可以加入我这个群进行讨论2749375 JAVA-ORACLE群
with v as (
select c.*,
NVL((select value from CONTRACT_TEMP where CONTRACT_ID=c.MAIN_DOC_ID and KEY_WORD='stock_type'), c.STOCK_TYPE)
as stock_type1
from CONTRACT_INFO c
)
select stock_type1, sum(contract_cost) from v group by stock_type1
这个才对