首页 新闻 会员 周边 捐助

求一报表视图??

0
悬赏园豆:5 [已解决问题] 解决于 2010-07-22 11:26

A表:(主单)
Id,JobNO,LoadPort,DiscPort,FinalDestination,Vessel,Voyage.

B表:(货单)
Id,JobNO,PrentJobNO(关联B.JobNo),cntNo,Weight,CBM,SealNo,CntSize,Marks,Description.


实现:
建一个视图,来实现填充如下报表效果:
Marks Description,和两表的所有字段

要求提示:A表的数据是唯一的,B表的数据具有多样性。(因为一个A.jobno下可能有多个B.jobno,
  而B.jobno下又有多种cntNo)

请帮大伙帮忙看看,这个语句如何写?如描述不详尽,请指出!小弟谢过了。

问题补充: A表: jobno 其它列 B表: jobhno parentjobno cntno Marks Description 01 1 c1 a treww 01 1 c2 b erwe 01 1 c2 c sdfsdf 02 2 c3 d dsfsdf 03 2 c3 e sdfsf 04 2 c4 f fsd 05 3 c5 要求效果: jobno jobhno cntno Marks description 其它列 1 01 c1 a treww ... 1 01 c2 b erwe 1 01 c2 c dfsdf jobno和jobhno可以不用查询出来,,在报表上就是实现这个效果。。你看看还有什么要描述的
发香已散的主页 发香已散 | 初学一级 | 园豆:4
提问于:2010-07-16 10:39
< >
分享
最佳答案
0

这个需求似乎Inner join就可以啊

 

Create View V_A_B
as
select A.*,B.*,'待定' as [Marks Description] from A
inner join B on A.jobno=B.JobNO

 

修改完整:

IF OBJECT_ID('[tableA]') IS NOT NULL
DROP TABLE [TableA]
GO
CREATE TABLE [TableA] ([jobNo] int primary key identity ,
[AOther] [nvarchar](30))
INSERT INTO [TableA]
SELECT '测试A01' union all
SELECT '测试A02'


IF OBJECT_ID('[tableB]') IS NOT NULL
DROP TABLE [TableB]
GO
CREATE TABLE [TableB] (
[jobhno] nvarchar(10),
[parentjobno] int ,
[cntno] nvarchar(20),
[Marks] nvarchar(10),
[Description] [nvarchar](200)
)
INSERT INTO [TableB]
SELECT'01',1,'c1','a','treww'union all
select'01',1,'c2','b','erwe'union all
select'01',1,'c2','c','sdfsdf'union all
select'02',2,'c3','d','dsfsdf'union all
select'03',2,'c3','e','sdfsf'union all
select'04',2,'c4','f','fsd'union all
select'05',3,'c5','g','ttt'

select a.[jobNo],B.jobhno,B.cntno,B.Marks,B.[description],a.[AOther]
from [tablea] A
inner join [tableb] B on A.jobno=B.[parentjobno]

/*
jobNo jobhno cntno Marks description AOther
1 01 c1 a treww 测试A01
1 01 c2 b erwe 测试A01
1 01 c2 c sdfsdf 测试A01
2 02 c3 d dsfsdf 测试A02
2 03 c3 e sdfsf 测试A02
2 04 c4 f fsd 测试A02
(6 row(s) affected)
*/

 

其实还是一个inner join

Create proc CPP_GetOneJobDemo
(
@jobno int)
as

select a.[jobNo],B.jobhno,B.cntno,B.Marks,B.[description],a.[AOther]
from [tablea] A
inner join [tableb] B on A.jobno=B.[parentjobno] and a.jobno=@jobno

go

--调用 CPP_GetOneJobDemo 1

 

收获园豆:5
邀月 | 高人七级 |园豆:25475 | 2010-07-16 11:15
如果按照你说的查询无法达到效果。。。Marks字段放到报表下显示只有主单下一个CntNo的信息,其它主都取不到值 我要的是如下报表显示效果: a.jobno cntno Marks Description Cbm 001002 hoho jj 3 (按你的就只能取到这一条数据) Q1 003004 koko ge 4 一页 ================================================================= 004 wowow hiw 5 Q2 oo7 jojo kiji 6 二页 你看看有什么办法没?
发香已散 | 园豆:4 (初学一级) | 2010-07-16 13:21
@发香已散:请给出几个样例数据,及想要查询的效果?
邀月 | 园豆:25475 (高人七级) | 2010-07-16 13:33
样例数据: A表: jobno 其它列 B表: jobhno parentjobno cntno Marks Description 01 1 c1 a treww 01 1 c2 b erwe 01 1 c2 c sdfsdf 02 2 c3 d dsfsdf 03 2 c3 e sdfsf 04 2 c4 f fsd 05 3 c5 要求效果: jobno jobhno cntno Marks description 其它列 1 c1 a treww ... 01 1 c2 b erwe ... 1 c2 c sdfsdf jobno和jobhno可能不用查询出来,,在报表上就是实现这个效果。。 你看看还有什么要描述的
发香已散 | 园豆:4 (初学一级) | 2010-07-16 15:20
请看问题补充
发香已散 | 园豆:4 (初学一级) | 2010-07-16 15:25
help me
发香已散 | 园豆:4 (初学一级) | 2010-07-16 16:51
@发香已散: 已经在上面了,请查看
邀月 | 园豆:25475 (高人七级) | 2010-07-20 14:31
我要求的每次只在报表上显示一个jobno的信息,而不是所有的显示出来 又应该怎么处理了?
发香已散 | 园豆:4 (初学一级) | 2010-07-20 15:07
@发香已散:最后加个条件: and a.jobno=1
邀月 | 园豆:25475 (高人七级) | 2010-07-20 15:31
可以做成参数来传吗
发香已散 | 园豆:4 (初学一级) | 2010-07-20 15:43
@发香已散:存储过程调用在上面
邀月 | 园豆:25475 (高人七级) | 2010-07-20 15:49
其他回答(3)
0

两个table做join就ok了. 同意楼上的.

changbluesky | 园豆:854 (小虾三级) | 2010-07-16 11:16
-1

很好啊

加华国术馆 | 园豆:205 (菜鸟二级) | 2010-07-16 11:39
0

C1ReportViewer可以一次查看多个报表

zenmshuo | 园豆:287 (菜鸟二级) | 2017-04-18 16:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册