汇总总结一下在T100中常用的SQL语句。
一、基础资料的查询
这里把aimm200中的所有的需要的数据全部串查到一个结果集中,然后直接Excel汇出即可。
select imafsite 据点,imaf001 料件编号,imaal003 品名,imaal004 规格,--imaf172 交货前置时间,imaf013 补给策略
imaa006 基础单位,imaf013 补给策略,imaa004 料件类别,imaf091 默认库位,imaf153 主要供应商,imaf145 采购单位批量,
imaf146 最小采购数量,imaf142 采购人员,imaf172 交货前置时间,imae023 必要性质,imae020 生产超交率,imae034 "默认部门/供应商",imae041 默认入库库位,imae071 固定生产前置时间,
imae091 倒扣料,imae101 默认发料库位,imae114 是否进料检验
--select imafsite 据点,imaf001 料件编号,imaal003 品名,imaal004 规格--,imaf013 补给策略
from imaa_t
left join imaf_t
on imafent = imaaent
and imaf001 = imaa001
left join imaal_t
on imafent = imaalent
and imaf001 = imaal001
left join imae_t
on imafent = imaeent
and imafsite = imaesite
and imaf001 = imae001
where imafent = 88
and imafsite = 'ALL'
and imaal002 = 'zh_CN'
and imaf013 = '1'
--and imaf001 like '5002%'
--and imaal003 like '%标签%'
--and (imaf001 like '1%' OR imaf001 like '2%' OR imaf001 like '3%' OR imaf001 like '4%')
order by imaa001
查询结果
二、基础数据的更新
一般来讲,执行更新的时候,要么做一下数据备份,防止更新错误的时候及时可以进行数据的回滚。但是我习惯才用先查询要更新的条数,然后在执行更新的语句,两次sql的结果集条数一致的时候,再去执行事务的提交操作。
一般就是先查询,后update。
--查询基础资料中倒扣料3个是否勾选
select imae091 倒扣料,imae092 是否发料前调拨,imae023 主要性质 from imae_t left join imaal_t
on imaeent = imaalent
and imae001 = imaal001
where imaeent = 88
--and imaesite = 'JHSL'
and imaal002 = 'zh_CN'
and imae001 like '5002%'
and imaal003 = 'EPDM'
更新语句一:
--芳纶线、EPDM、CSM、CR混炼胶、CIIR、CR、维纶线增强层、芳纶网眼布(NX布)、PET增强层
--imae101 默认发料库位
UPDATE imae_t
SET imae091 = 'Y',imae092 = 'Y'--,imae101 = 1110
--set imae023 = '4'
WHERE EXISTS (
SELECT 1
FROM imaal_t
WHERE imae_t.imaeent = imaal_t.imaalent
AND imae_t.imae001 = imaal_t.imaal001
AND imae_t.imaeent = 88
--AND imae_t.imaesite = 'JHG1'
AND imaal_t.imaal002 = 'zh_CN'
--and imae_t.imae001 like '5002%'
AND imaal_t.imaal003 = '铝管管材'
);
偶尔直接查询有多少条
select count(*) from imae_t where imaeent = 88
and imaesite = 'JHG1' and imae001 like '5002%'
更新语句二:
--芳纶线、EPDM、EPDM混炼胶 补给策略imaf013 = '4'
UPDATE imaf_t
SET imaf013 = '4'
WHERE imafent = 88
AND imaf001 IN (
SELECT imaal001
FROM imaal_t
WHERE imaalent = 88
AND imaal001 IN (
SELECT imaf001
FROM imaf_t
WHERE imafent = 88
--AND imafsite = 'JHNL'
AND imaal002 = 'zh_CN'
AND imaal003 = '芳纶线'
--AND imaa004 = 'A'
)
);
更新语句三:
--更新料件据点生管作业
UPDATE imae_t
SET imae041 = '2504',
imae101 = '2504'
WHERE imae001 IN (
SELECT DISTINCT imae001
FROM imae_t
LEFT JOIN imaf_t ON imae001 = imaf001 AND imaeent = imafent