| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1044 人关注过本帖
标题:如何写这样的报表
只看楼主 加入收藏
coolfaith
Rank: 1
等 级:新手上路
帖 子:194
专家分:0
注 册:2006-4-25
收藏
 问题点数:0 回复次数:3 
如何写这样的报表
有4张表,一张指令单表,其余3张表是由这张指令单表信息拓展的,它们之间的关联是指令单号相同。
T_Dictate   指令单表
ID   DictateNO  ProductNO   ProductName
1     0001      A        A1
2     0002      B        B1
3     0003      C        C1
4     0004      D        D1
5     0005      E        E1

T_Tast
ID   DictateNO   Number  
1     0002          20
2     0002          20
3     0003          20
4     0004          30
5     0005          35
6     0005          20


T_Notice
ID   DictateNO   Number  
1     0001          10
2     0002          20
3     0003          20
4     0003          20
5     0005          20
6     0005          20

T_InStorage
ID   DictateNO   Number  
1     0001          20
1     0001          20
2     0002          10
3     0003          20
5     0004          30
6     0005          20
7     0005          20

最后想得到的报表格式为:

DictateNO   ProductNO   ProductName   TastNumber    NoticeNumber   InStorageNumber
0001        A        A1               0            10              40
0002        B        B1               40            20              10
0003        C        C1               20            40              20
0004        D        D1               30            0               30
0005        E        E1               20            20              40

数量上是没有联系,都是根据指令单号来关联的,请问该如何写这个存储过程
搜索更多相关主题的帖子: 报表 
2008-11-17 21:03
coolfaith
Rank: 1
等 级:新手上路
帖 子:194
专家分:0
注 册:2006-4-25
收藏
得分:0 
有没有人帮忙看看,急用,谢谢

2008-11-18 08:49
happynight
Rank: 8Rank: 8
等 级:贵宾
威 望:15
帖 子:807
专家分:760
注 册:2008-4-26
收藏
得分:0 
SELECT T_Dictate.DictateNO,T_Dictate.ProductNO,T_Dictate.ProductName
,a.SumNumber  AS TastNumber,b.SumNumber  AS  NoticeNumber,c.SumNumber  AS    InStorageNumber
FROM T_Dictate LEFT JOIN
(SELECT DictateNO,SUM(Number) SumNumber FROM T_Tast GROUP BY DictateNO) a ON
T_Dictate.DictateNO= a.DictateNO
LEFT JOIN
(SELECT DictateNO,SUM(Number) SumNumber FROM T_Notice GROUP BY DictateNO) b ON
T_Dictate.DictateNO= b.DictateNO
LEFT JOIN
(SELECT DictateNO,SUM(Number) SumNumber FROM T_InStorage
GROUP BY DictateNO) c ON
T_Dictate.DictateNO= c.DictateNO
-----------------------------------------
未调试 应该没问题 等于NULL的数据你自己加个Case改成0吧

[[it] 本帖最后由 happynight 于 2008-11-18 13:57 编辑 [/it]]
2008-11-18 13:56
coolfaith
Rank: 1
等 级:新手上路
帖 子:194
专家分:0
注 册:2006-4-25
收藏
得分:0 
差不多是这样,谢谢了

2008-11-21 10:23
快速回复:如何写这样的报表
数据加载中...
 
   



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

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