| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 713 人关注过本帖
标题:SQL查询语句,急着用.
只看楼主 加入收藏
davyxjc
Rank: 2
等 级:论坛游民
帖 子:130
专家分:76
注 册:2009-6-30
结帖率:70.37%
收藏
已结贴  问题点数:5 回复次数:5 
SQL查询语句,急着用.
有两个数据表,A表是记录生产排程表,B表是记录实际生产记录表.
A表                                                                        B表
工单号    产品编码     日期         计划数量      计划工时                工单号      产品编码      日期         实际数量      实际工时
GD002        A         2011-05-28     300            40                    GD002       A            2011-05-28     110         10
GD003        B         2011-05-28     800            20                    GD004       C            2011-05-28     700         22
                                                                           GD002       A            2011-05-28     200         35
现在要做一个查询,结果如下:
工单号    产品编码      日期         计划数量     计划工时      实际数量       实际工时
GD002        A          2011-05-28   300             40         310            45   (按排程生产)
GD003        B          2011-05-28   800             20         0              0    (有排程没生产)
GD004        C          2011-05-28   0               0          700            22   (没排程有生产)

请问要得到以上结果,应该怎样写SQL语句???

[ 本帖最后由 davyxjc 于 2011-5-28 09:39 编辑 ]
搜索更多相关主题的帖子: 记录表 数据表 
2011-05-28 09:37
panyanpan
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:82
专家分:647
注 册:2011-4-6
收藏
得分:5 
select  (Case When A.工单号 is not null Then A.工单号 else C.工单号 End),
        (Case When A.产品编码 is not null Then A.产品编码 else C.产品编码 End),
        (Case When A.日期 is not null Then A.日期 else C.日期 End),
        (Case When A.计划数量 is not null Then A.计划数量 else 0 End),
        (Case When A.计划工时 is not null Then A.计划工时 else 0 End),
        (Case When C.实际数量 is not null Then C.实际数量 else 0 End),
        (Case When C.实际工时 is not null Then C.实际工时 else 0 End)
from A full outer join (select 工单号,产品编码,日期,sum(实际数量) as 实际数量,sum(实际工时) as 实际工时 from B group by 工单号,产品编码,日期) C
on A.工单号=C.工单号

图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 panyanpan 于 2011-5-28 10:06 编辑 ]
2011-05-28 10:03
davyxjc
Rank: 2
等 级:论坛游民
帖 子:130
专家分:76
注 册:2009-6-30
收藏
得分:0 
非常感谢!
2011-05-28 11:39
lstk555
Rank: 2
等 级:论坛游民
帖 子:9
专家分:45
注 册:2011-5-11
收藏
得分:0 
select a. 工单号,a.产品编码,日期,sum(b.实际数量) as 实际数量,sum(b.实际工时) as 实际工时,a.计划数量,a.计划工时 from a,b
where a.工单号=b.工单号


这样就可以了!
2011-05-30 21:43
davyxjc
Rank: 2
等 级:论坛游民
帖 子:130
专家分:76
注 册:2009-6-30
收藏
得分:0 
回复 4楼 lstk555
你这条语句不行嘀......
2011-05-31 11:05
lyr000
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-6-7
收藏
得分:0 
select a.dh 工单号,a.bm 产品编码 ,a.rq 日期,sum(a.jhsl) 计划数量,sum(a.jhgs) 计划工时,sum(a.sjsl) 实际数量,sum(a.sjgs) 实际工时
from
(
select dh,bm,rq,sum(jhsl) jhsl,sum(jhgs) as jhgs ,0 as sjsl,0 as sjgs  from #a group by dh,bm,rq
union
select dh,bm,rq,0 as jhsl,0 as jhgs,sum(sjsl) sjsl,sum(sjgs) sjgs from #b group by dh,bm,rq)a
group by a.dh,a.bm,a.rq
2011-06-07 13:26
快速回复:SQL查询语句,急着用.
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016587 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved