在前台操作中得到三个表:
领入表:
领入时间 配件编号 领入数量
2003-5-7 3 100
4 400
2003-5-9 3 47
6 2345
部门领出表:
部门领出时间 配件编号 部门领出数量
2003-10-9 3 10
6 400
2003-11-7 4 6
个人领出表:
个人领出时间 配件编号 个人领出数量
2003-9-9 3 7
6 7
2003-9-27 3 2 现我在后台查看时得到:“关于配件编号的领入领出情况”,希望得到的界面如下 配件编号 领入时间 数量 部门领出时间 数量 个人领出时间 数量
--------- -------- ---- ------------ ---- ----------- ----
(1) 3 2003-5-7 100 2003-10-9 10 2003-9-7 7
(2) 2003-5-9 47 2003-9-27 2 我若用join连接三个表,则(2)条记录无
若用了left join连接三个表,则会变成4条记录(1对多)
请教各位大侠:1 若用join显示如何写语句
2 若join不行,可否还有其它方法,比如直接建个库表?
Mshflexgrid可以显示层次结构,不知这里好用么??
领入表:
领入时间 配件编号 领入数量
2003-5-7 3 100
4 400
2003-5-9 3 47
6 2345
部门领出表:
部门领出时间 配件编号 部门领出数量
2003-10-9 3 10
6 400
2003-11-7 4 6
个人领出表:
个人领出时间 配件编号 个人领出数量
2003-9-9 3 7
6 7
2003-9-27 3 2 现我在后台查看时得到:“关于配件编号的领入领出情况”,希望得到的界面如下 配件编号 领入时间 数量 部门领出时间 数量 个人领出时间 数量
--------- -------- ---- ------------ ---- ----------- ----
(1) 3 2003-5-7 100 2003-10-9 10 2003-9-7 7
(2) 2003-5-9 47 2003-9-27 2 我若用join连接三个表,则(2)条记录无
若用了left join连接三个表,则会变成4条记录(1对多)
请教各位大侠:1 若用join显示如何写语句
2 若join不行,可否还有其它方法,比如直接建个库表?
Mshflexgrid可以显示层次结构,不知这里好用么??
解决方案 »
- vb的两个byref参数赋任意一个值均未相同的值.
- 本人想编写了一个dll,用"CDONTS.NewMail"发送email,但是ActiveX component can't create object
- INET下载文件,本地文件夹有空格的问题,紧急啊,半夜来求救,谢谢!
- 请问有没有函数可以实现这个功能?
- 关于SQL2000安装问题。。。。。。。。。。。。急急急。。。。。。。。。。。。
- 请问如何在VB中用代码获取一SQL视图的SQL语句?
- 狂赠:求VB下的一个FTP程序,只要求下载,不用上传的。
- 如何实现这样的功能?急!给分从速!
- 如何判断一个对象为空?myobject=nothing有何错误??
- 我安装的VB6.0,在保存文件时,出现的提示保存文件名是乱码,这是为什么?
- vba中的转义字符是什么?我想要做字符串操作。
- 关于DataGrid控件
select a.配件编号,a.领入时间,a.领入数量,b.部门领出时间,b.部门领出数量,c.个人领出时间,c.个人领出数量
from 领入表 a
left join 部门领出表 b on a.配件编号=b.配件编号
left join 个人领出表 c on a.配件编号 = c.配件编号
where a.配件编号 = '3'
(1)得到所有单据的配件编号
select distinct 配件编号 from 领入表 union
select distinct 配件编号 from 个人领出表 Union
select distinct 配件编号 from 部门领出表 union
将结果放到mCollection 集合中
(2)声明三个RecordeSet(3)
Dim Row as Long'网个行数
Row=1
For I=1 to mCollection.Cout
RecordeSet(1).CommandText="Select * from 领入表
where 配件编号=mcollecton(I)"
RecordeSet(2).CommandText="Select * from 部门领出表"
where 配件编号=mcollecton(1)
RecordeSet(3).CommandText="Select * from 个人领出表"
where 配件编号=mcollecton(1) 然后打开三个RecordSet
用循环添加信息到显示界面的控件中(MSHFlexGrid为例)
While Recordset(1).EOF=False Or RecorSet(2).EOF=False
Or RecordSet(3).Eof=Fals
While RecordSet(1).EOF=False
mGrid.TextMatrix(Row,0)=Recordset(1)!配件编号
mgrid.Textmatrix(Row,1)=Recordset(1)!领入时间
mgrid.TextMatrix(Row,2)=Recordset(1)!领入数量
wend
While RecordSet(2).EOF=False
mGrid.TextMatrix(Row,3)=Recordset(2)!配件编号
mgrid.Textmatrix(Row,4)=Recordset(2)!领出时间
mgrid.TextMatrix(Row,5)=Recordset(2)!领出数量
wend
While RecordSet(3).EOF=False
mGrid.TextMatrix(Row,5)=Recordset(3)!配件编号
mgrid.Textmatrix(Row,6)=Recordset(3)!领出时间
mgrid.TextMatrix(Row,7)=Recordset(3)!领出数量
wend
Row=Row+1
Wend
next也就是用三重循环,还不明白么?我没时间,先到着
( 领入表 join 部门领出表)生成虚拟表 table1
( 领入表 join 个人领出表)生成虚拟表 table2
table1 join table12
from 领入表 a left join 部门领出表 b on a.配件编号=b.配件编号
left join 个人领出表 c on a.配件编号 = c.配件编号
where a.配件编号 = '3'
strSql="select a.配件编号,a.领入时间,a.领入数量,b.部门领出时间,b.部门领出数量,c.个人领出时间,c.个人领出数量
from 领入表 a left join 部门领出表 b on a.配件编号=b.配件编号
left join 个人领出表 c on a.配件编号 = c.配件编号
where a.配件编号 = '3'"rs.open strSql,cn
set mshflexgrid.datasource=rs
rs.close