我如何理解这个SQL脚本

时间:2019-07-23 20:00:50

标签: sql

我正在学习SQL,我的主管向我发送了这些脚本并告诉我运行它们。谁能逐行解释此查询的功能?

select 
    a.charg as "Batch Number", a.matnr as "SAP Material #", 
    a.bwart as "SAP Movement Code", a.werks as "Manufacturing Site Code", 
    a.budat as "Date of Manufacturing", a.aufnr as "SAP Order Number", 
    a.menge as "Quantity", a.meins as "Units"
from 
    mfg_nv1.v_chvw a
inner join 
    mfg_nv1.v_eu_job_header b on b.sap_batch = a.charg
where 
    b.product in ('C_2188_R', 'C_2188_0_4ML_R', 'C_2188_0_7ML_R') 
    and a.werks = '1513'  
    and a.Bwart = '101'
    and b.sap_batch > 'ABA111'` 

没有错误消息,只是不返回任何内容,但是如果我能用简单的英语理解它会尝试对其进行编辑。

1 个答案:

答案 0 :(得分:0)

  1. 您正在根据以下内容将两个表mfg_nv1.v_chvw和mfg_nv1.v_eu_job_header组合在一起 它们之间的公共列(b.sap_batch = a.charg)。

  2. 在所选数据中,您是 要求数据库仅选择产品(“ C_2188_R”,“ C_2188_0_4ML_R”, 'C_2188_0_7ML_R'),奇怪的是1513 ...

  3. 如果通过所有条件的任何数据均可用,则将 在运行查询后显示给您,否则将不返回任何内容。

  4. 尝试运行查询直到(选择... a.charg),删除where条件并查看 改变。

这是一个有用的链接:

https://oracle-base.com/articles/misc/sql-for-beginners-joins