关于SQL语法的问题:如何把以下图片中表1与表2 得出表3的效果呢? 感谢高手的帮忙。

用SQL语法如何写出来?。其实在表2:MOC在制程名称下面一列还有很多值。而我想把两个表关联起来,并把制程名称这一列变成行,也就是说表3的开料、冲孔、后加工这几列是取表2... 用SQL语法如何写出来?。
其实在表2:MOC 在制程名称 下面一列还有很多值。
而我想把两个表关联起来,并把制程名称这一列变成行,也就是说表3的 开料、冲孔、后加工这几列是取表2MOC的制程名称的值。
如图:
展开
 我来答
百度网友4b68195
2013-05-25 · TA获得超过1520个赞
知道大有可为答主
回答量:1773
采纳率:100%
帮助的人:1718万
展开全部
select a.单别,a.制令单号,a.品号,a.品名,b.订单号,a.数量,'20130530' as 完工,
b.订单交期,b.客户名称,b.开料,b.冲孔,b.后加工,b.包装,b.粗坯检验,b.包装
from COP a,
(select 订单交期,订单号,客户名称,单别,制令单号,
sum(case 开料 when 完成数量 else 0) as 开料,
sum(case 冲孔 when 完成数量 else 0) as 冲孔,
sum(case 后加工 when 完成数量 else 0) as 后加工,
sum(case 包装 when 完成数量 else 0) as 包装,
sum(case 粗坯检验 when 完成数量 else 0) as 粗坯检验
from MOC
group by 订单交期,客户名称,单别,制令单号,订单号) b
where a.单别=b.单别 and a.制令单号=b.制令单号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
网易云信
2023-12-06 广告
UIkit是一套轻量级、模块化且易于使用的开源UI组件库,由YOOtheme团队开发。它提供了丰富的界面元素,包括按钮、表单、表格、对话框、滑块、下拉菜单、选项卡等等,适用于各种类型的网站和应用程序。UIkit还支持响应式设计,可以根据不同... 点击进入详情页
本回答由网易云信提供
勇敢的樵夫
2013-05-25 · TA获得超过172个赞
知道小有建树答主
回答量:153
采纳率:100%
帮助的人:185万
展开全部
select 单别,品号,品名,a.* from COP left join
(
select 订单号,订单交期,客户名称,制令单号,
max(case when 制程名称='开料' then 完成数量 else 0 end) as 开料,
max(case when 制程名称='冲孔' then 完成数量 else 0 end) as 冲孔,
max(case when 制程名称='后加工' then 完成数量 else 0 end) as 后加工,
max(case when 制程名称='粗坯检验' then 完成数量 else 0 end) as 粗坯检验,
max(case when 制程名称='包装' then 完成数量 else 0 end) as 包装 from MOC) a
on COP.制令单号=a.制令单号

txt文本里敲的,可能有些标点符号的问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
厍曼冬6o
2013-05-25 · TA获得超过1569个赞
知道小有建树答主
回答量:1336
采纳率:0%
帮助的人:1201万
展开全部
select a.单别,a.制令单号,a.品号,a.品名,b.订单号,a.数量,'20130530' as 完工,

b.订单交期,b.客户名称,b.开料,b.冲孔,b.后加工,b.包装,b.粗坯检验,b.包装

from COP a,

(select 订单交期,订单号,客户名称,单别,制令单号,

sum(case when 制程名词='开料' when 完成数量 else 0 end) as 开料,

sum(case when 制程名词='冲孔' when 完成数量 else 0 end) as 冲孔,

sum(case when 制程名词='后加工' when 完成数量 else 0 end) as 后加工,

sum(case when 制程名词='包装' when 完成数量 else 0 end) as 包装,

sum(case when 制程名词='粗坯检验' when 完成数量 else 0 end) as 粗坯检验

from MOC

group by 订单交期,客户名称,单别,制令单号,订单号) b

where a.单别=b.单别 and a.制令单号=b.制令单号;
追问

你好,很感谢你的热心回复。

其实在表2:MOC 在制程名称 下面一列还有很多值。

而我想把两个表关联起来,并把制程名称这一列变成行,也就是说表3的 开料、冲孔、后加工这几列是取表2MOC的制程名称的值。

如图

追答
两个表没有主外键的话,只能这样一个一个列举出来,或者使用动态sql处理
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6bfc944
2013-05-25 · TA获得超过746个赞
知道小有建树答主
回答量:529
采纳率:0%
帮助的人:289万
展开全部
个人认为,想产生表三那种格式的 sql 是没有的,不知道楼下 怎么写出来的,个人认为你这是一个报表,可以使用特殊的手法农出来,SQL 是不得行的,因为你上面的那些,什么开料,冲空等,那是一个字段,不是另一张 数据表
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wshrxh_sz
2013-05-25 · TA获得超过265个赞
知道小有建树答主
回答量:629
采纳率:75%
帮助的人:316万
展开全部
用SQL联起来没问题但是第三表里有些字段是上两个表没有的,你能不能说明一下,通过表一和表二怎么得出表三里(表一和表二中没有的)那些字段的,或者还有其它表没列出来的,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式