SQL 语句求助,请各位大神帮帮忙。
表1(预测计划的一个表)表2(实际开工单生产)预测编号1(每个月一次)读取表一的预测编号产品1500pcs产品1200PCS产品1150PCS产品2700pcs产品2没开...
表1 (预测计划的一个表) 表2 (实际开工单生产)
预测编号 1 (每个月一次) 读取表一的预测编号
产品 1 500 pcs 产品1 200 PCS
产品1 150 PCS
产品 2 700 pcs 产品2 没开单生产
产品 3 300 pcs 产品3 300PCS
产品 4 500 pcs 产品4 350 PCS
产品 5 900 pcs 产品5 没开单生产
表1 是一个预测信息表, 主要字段为 预测编号,产品编号,数量
表2是一个实际生产信息。 输入预测号可以读取 表1中的产品信息, 生产 一个产品可以分几次做完 也可以一次做完。
主要字段 预测编号,产品编号,数量,工单号。
我想查出来 表一中某一预测编号还有多少产品 在表2中没有生产完的。当然有些只是做了一部分,有些根本一PCS都没有做。
不知道我说得清楚不?
在线等待,。。。。 穷啊没分了
............... 展开
预测编号 1 (每个月一次) 读取表一的预测编号
产品 1 500 pcs 产品1 200 PCS
产品1 150 PCS
产品 2 700 pcs 产品2 没开单生产
产品 3 300 pcs 产品3 300PCS
产品 4 500 pcs 产品4 350 PCS
产品 5 900 pcs 产品5 没开单生产
表1 是一个预测信息表, 主要字段为 预测编号,产品编号,数量
表2是一个实际生产信息。 输入预测号可以读取 表1中的产品信息, 生产 一个产品可以分几次做完 也可以一次做完。
主要字段 预测编号,产品编号,数量,工单号。
我想查出来 表一中某一预测编号还有多少产品 在表2中没有生产完的。当然有些只是做了一部分,有些根本一PCS都没有做。
不知道我说得清楚不?
在线等待,。。。。 穷啊没分了
............... 展开
2个回答
展开全部
很简单,你按照下面结构写一下就行了,关键在union all的使用,这个对于计划、财务、库存都能使用,希望能帮到你。
select 产品,
sum(预测量) as 汇总预测量,
sum(开工量) as 汇总开工量,
sum(期末量) as 汇总期末量
from (
select 商品,数量 as 预测量,0 as 开工量,数量 as 期末量 from 预测表
union all
select 商品,0 as 预测量,数量 as 开工量,数量*-1 as 期末量 from 开工表
) as 汇总表
group by 产品
select 产品,
sum(预测量) as 汇总预测量,
sum(开工量) as 汇总开工量,
sum(期末量) as 汇总期末量
from (
select 商品,数量 as 预测量,0 as 开工量,数量 as 期末量 from 预测表
union all
select 商品,0 as 预测量,数量 as 开工量,数量*-1 as 期末量 from 开工表
) as 汇总表
group by 产品
追问
数量*-1 是啥意思???啊
谢谢了
麻烦了
追答
首先你结果出来了吗?给你解决问题了吗?
因为最后要做合计,所以需要取反。举例
预测20,开工18,结果应该是2
如果不做任何处理,结果是20+18=38
所以要把18先取反,结果还是合计,就变成20+(-18)=2
明白了吗?
展开全部
说个容易理解的,据我的理解,表1表2的预测编号和产品编号应该是对应的。
select 表1.预测编号,表1.产品编号,表1.数量,表2.数量,表1.数量-表2.数量 未完成
from 表1,表2
where 表1.预测编号=表2.预测编号 and 表1.产品编号=表2.产品编号 and 表1.数量>表2.数量
;
这样就可以了,最后一列是未完成的数量.
select 表1.预测编号,表1.产品编号,表1.数量,表2.数量,表1.数量-表2.数量 未完成
from 表1,表2
where 表1.预测编号=表2.预测编号 and 表1.产品编号=表2.产品编号 and 表1.数量>表2.数量
;
这样就可以了,最后一列是未完成的数量.
追问
这样不行哦,有些产品是分几次做的。 比如产品A数量500 我第一次做200 ,第二次 做150
你这个语句些出来后 会得到2比数据 500-200 =300 第二比 500-150 =350 实际只有150没有做。 可以这样不? 未完成=表1.数量-COUNT(表2.数量) 但是后面 GROUP BY A.CODE 又不行 会报错误.还有个问题 产品2,产品5 都没有做。也就是说表2里面没有这2个产品的资料. 如果写表1.产品编号=表2.产品编号 这样就出问题了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询