多表关联及打印问题(100分)

  • 主题发起人 主题发起人 HeBaisong
  • 开始时间 开始时间
H

HeBaisong

Unregistered / Unconfirmed
GUEST, unregistred user!
我有两个问题,想了很长时间都没有解决掉,特向大虾们请教
1:两表关联问题

Table1的字段是Name1:varchar(9)
Addr :varchar(20)
Table2的字段是Name2:varchar(9)
Addr :varchar(20)
其中Table2的字段Name2必须是Table1的Name1的内容
建立这两个表以后对Table1和Table2的字段Name1和Name2进行修改
我建立Table2的时候
create table Table2
(Name2 varchar(9)
CONSTRAINT FK_Name_Table1 REFERENCES Table1(Name1),
Addr:varchar(20)
)
on primary
这样使Table2的Name2的内容限制在Table1的对应字段里
问题是:我对Table1或者Table2里的记录进行修改时,如果我修改Name1或者Name2,由于约束
使记录无法修改成功,我想请教各位,可否帮我给Table1写个update触发器,当Table1的字段
Name1有改动时,同时改动Table2的Name2

2:多表打印问题

Table1的字段为: ItemNo varchar(9)
ItemName varchar(20)
ItemCName varchar(20)
Table2的字段为: CoNo varchar(9)
CustName varchar(20)
CoDate DateTime
Table3的字段为: CoNo varchar(9) (*与Table2相连*)
ItemNo varchar(9) (*与Table1相连*)
Qty int
Price money
假如Table1的记录有
ItemNo ItemName ItemCName
I0001 Name1 Cname1
I0002 Name2 Cname2
I0003 Name3 Cname3
Table2的记录有
CoNo CustName CoDate
C001 CName1 01-05-12
C002 CName2 01-04-12
Table3的记录有
CoNo ItemNo Qty Price
C001 I0001 1000 5
C001 I0002 500 6
C001 I0003 400 9
C002 I0001 1000 6
我现在想打印的结果是
CoNo CustName CoDate
C001 CName1 01-05-12
ItemNo ItemName ItemCname Qty Price
I0001 Name1 Cname1 1000 5
I0002 Name2 Cname2 500 6
I0003 Name3 Cname3 400 9
CoNo CustName CoDate
C002 CName2 01-04-12
ItemNo ItemName ItemCname Qty Price
I0001 Name1 Cname1 1000 6
情况就是这样,不知道哪位大虾,可以第一个解决,分是你的了,Thanks
 
怎么,没有人愿意帮我解决吗?
 
select Table2.CoNo as CoNo
,Table2.CustName as CustName
,Table2.CoDate as Date
,Table3.ItemNo as ItemNo
,Table1.ItemName as ItemName
,Table1.ItemCName as ItemCName
,Table3.Qty As Qty
,Table3.Price as Price
from Table2,Table1,Table3
where (Table2.CoNo=*Table3.CoNo)and(Table1.ItemNo=Table3.ItemNo)
order by CoNo
SQL的查询语句我已经写出来了,可是怎么在报表中实现我的要求呢?
因为还是第一次接触报表,很生疏,请各位帮忙
 
是不是要用三个Query查询才行?因为三个表头不一样!(纯属个人想法,不对别见怪)
如果用三个Query查询出来的结果应该用QReport就可以实现你的要求了!
 
To Dephic :第二个问题的查询我已经写出来了(看我上面的帖子),只是由于我刚开始接触报表
不知道如何在报表中把结果根据要求显示出来,不知道你是否可以实现,如果用
三个Query,那又该如何来实现呢?
 
试试:
用QRport,加入QRSubDetail控件,设该控件的HasHeader属性为TRUE,
在group header栏放入QRLabel控件用来显示表头!
SubDetail栏放入QRDBTEXT 控件用于显示数据!
QRSubDetail控件的dataset 属性设为相应的QUERY!
如此试试!
 
:两表关联问题

Table1的字段是Name1:varchar(9)
Addr :varchar(20)
Table2的字段是Name2:varchar(9)
Addr :varchar(20)
其中Table2的字段Name2必须是Table1的Name1的内容
建立这两个表以后对Table1和Table2的字段Name1和Name2进行修改
我建立Table2的时候
create table Table2
(Name2 varchar(9)
CONSTRAINT FK_Name_Table1 REFERENCES Table1(Name1),
Addr:varchar(20)
)
on primary
这样使Table2的Name2的内容限制在Table1的对应字段里
问题是:我对Table1或者Table2里的记录进行修改时,如果我修改Name1或者Name2,由于约束
使记录无法修改成功,我想请教各位,可否帮我给Table1写个update触发器,当Table1的字段
Name1有改动时,同时改动Table2的Name2

我的这个问题没有人回答吗?(第二个问题,我自己已经用RB解决了,可是第一个问题还
没有解决,哪位高手请帮帮忙呀!
 
To Dephic :第二个问题我用RB解决了,第一个问题能解决吗?
 
试试:
用QRport,加入QRSubDetail控件,设该控件的HasHeader属性为TRUE,
在group header栏放入QRLabel控件用来显示表头!
SubDetail栏放入QRDBTEXT 控件用于显示数据!
QRSubDetail控件的dataset 属性设为相应的QUERY!

master 对应为 select CoNo,CustName,CoDate from table2
SubDetail 对应为 select a.CoNo,a.ItemNo,b.ItemName,b.ItemCname,a.Qty,a.Price from table3 a
table1 b where a.ItemNo=b.ItemNo and a.CoNo=:CoNo
 
To zwma:我第二个问题已经解决了,不知道你能不能解决第一个问题
 
没有人帮我解决,可不可以八分还给我呀 ?
 
To 千中元, kucio
怎么没有人能解决这个问题呢?还是把分还给我吧!
 
是叫我在这里拿分吗?
那我就不客气了!
 
To guqs :你的提示,对我解决问题有很大的帮助,谢谢。以后有不懂的还要向你请教哦
 
接受答案了.
 
后退
顶部