表:
1、设备基本表(G_ID
SB_ID、SBName...
2、设备连接线关系表:
SB_ID、LJX_ID
3、连接线、线路关系表:
LJX_ID、XL_NBBM
4、线路基本表:
XL_NBBM、XL_NAME要求:
创建‘设备线路关系表视图’(SB_ID、XL_Name....)
1、设备基本表(G_ID
SB_ID、SBName...
2、设备连接线关系表:
SB_ID、LJX_ID
3、连接线、线路关系表:
LJX_ID、XL_NBBM
4、线路基本表:
XL_NBBM、XL_NAME要求:
创建‘设备线路关系表视图’(SB_ID、XL_Name....)
解决方案 »
- cxgrid 如何去掉默认首行的选中状态或颜色?
- dll中新建form问题
- 北京Delphi程序员求职
- 想搜索目录中的EXE文件,出错,帮改,另有好的方法请贴出来.
- 怎样修改文件夹的创建日期?
- form2是form1中show出来的,form1关闭时,form2不关闭,form1重新showmodal出来,form2就不能操作了,怎办?
- 一个关于不同数据库中的数据导入问题
- 现在很多软件注册时都要系统ID,这个系统ID是根据什么来定的?编程怎样才能获得这个系统ID?
- 求教用delphi连接access数据库问题
- 如何把一个删除的文件恢复(没有放到回收站),用程序如何实现(可以给到200分,绝不食言)
- stringgrid控件的属性怎么设置,能用鼠标拖动来控制行距和间距呢?
- 字符串的问题?
SELECT 设备基本表.SB_ID,线路基本表.XL_NAME
FROM 设备基本表,设备连接线关系表,连接线线路关系表,线路基本表
WHERE 设备基本表.SB_ID=设备连接线关系表.SB_ID
AND 设备连接线关系表.LJX_ID=连接线线路关系表.LJX_ID
AND 连接线线路关系表.XL_NBBM=线路基本表.XL_NBBM
select a.sb_id,d.xl_name from 设备基本表 a,设备连接线关系表 b,连接线、线路关系表 c,线路基本表 d
where a.sb_id=b.sb_id and b.ljx_id=c.ljx_id and c.xl_nbbm=d.xl_nbbm
select a.sb_id,d.xl_name from 设备基本表 a,设备连接线关系表 b,连接线、线路关系表 c,线路基本表 d
where a.sb_id=b.sb_id and b.ljx_id=c.ljx_id and c.xl_nbbm=d.xl_nbbm表名,视图名尽量不要用中文,有时会出错
SB_ID、 SBName...
1 SBName1
设备连接线关系表:
SB_ID、LJX_ID
1 LJX1
1 LJX2
连接线、线路关系表:
LJX_ID、XL_NBBM
LJX1 XLNBBM1
LJX2 XLNBBM1
线路基本表:
XL_NBBM、XL_NAME
XLNBBM1 XLName我希望的结果是:
设备线路关系表视图
SBID XL_Name
1 XLName
但用连接会出现重复记录
SB_ID、 SBName...
1 SBName1
设备附属设备表1:
SB_ID、FSSBID1
1 FSID1
1 FSID2
设备附属设备表2:
SB_ID、FSSBID2
1 FSID3
1 FSID4期望视图
SB_ID FSSBID1 FSSBID2
1 FSID1 FSID3
1 FSID2 FSID3
CREATE VIEW 设备线路关系表视图 AS
SELECT DISTINCT TOP 100 PERCENT
设备基本表.SB_ID,线路基本表.XL_NAME
FROM 设备基本表,设备连接线关系表,连接线线路关系表,线路基本表
WHERE 设备基本表.SB_ID=设备连接线关系表.SB_ID
AND 设备连接线关系表.LJX_ID=连接线线路关系表.LJX_ID
AND 连接线线路关系表.XL_NBBM=线路基本表.XL_NBBM
SB_ID、 SBName...
1 SBName1
设备附属设备表1:
SB_ID、FSSBID1
1 FSID1
1 FSID2
设备附属设备表2:
SB_ID、FSSBID2
1 FSID3
1 FSID4期望视图
SB_ID FSSBID1 FSSBID2
1 FSID1 FSID3
1 FSID2 FSID4
SELECT DISTINCT TOP 100 PERCENT
设备基本表.SB_ID,设备附属设备表1.FSSBID1,设备附属设备表2.FSSBID2
FROM 设备基本表,备附属设备表1,设备附属设备表2
WHERE 设备基本表.SB_ID=设备附属设备表1.SB_ID AND 设备附属设备表1.SB_ID=设备附属设备表2.SB_ID
SB_ID FSSBID1 FSSBID2
1 FSID1 FSID3
1 FSID2 FSID4
1 FSID1 FSID4
1 FSID2 FSID3不重复但进行了一次排列,如何避免这个问题
SELECT DISTINCT TOP 100 PERCENT
A.SB_ID,A.FSSBID1,B.FSSBID2
FROM
(SELECT 设备基本表.SB_ID,设备附属设备表1.FSSBID1
FROM 设备基本表,备附属设备表1
WHERE 设备基本表.SB_ID=设备附属设备表1.SB_ID ) A,(SELECT 设备基本表.SB_ID,设备附属设备表2.FSSBID2
FROM 设备基本表,设备附属设备表2
WHERE 设备基本表.SB_ID=设备附属设备表2.SB_ID) B
WHERE A.SB_ID=B.SB_ID
No SB_ID、FSSBID1
1 1 FSID1
2 1 FSID2
设备附属设备表2:
No SB_ID、FSSBID2
1 1 FSID3
2 1 FSID4然后利用left join对附属设备表1,设备附属设备表2的No进行一次连接。理论上是可以解决排列问题的。但我不知道如何用SQL实现类似效果--我用的是DB2。
====背景资料
设备基本表
SB_ID、 SBName...
1 SBName1
设备附属设备表1:
SB_ID、FSSBID1
1 FSID1
1 FSID2
设备附属设备表2:
SB_ID、FSSBID2
1 FSID3
1 FSID4
======
以上,‘设备基本表’是‘设备附属设备表1’与‘设备附属设备表2’的
父表,而‘设备附属设备表1’与‘设备附属设备表2’之间没有关系。希望用一个SQL得到
SB_ID FSSBID1 FSSBID2
1 FSID1 FSID3
1 FSID2 FSID4
××××××××××××××××××××××××××××
考虑到‘设备附属设备表1’或‘设备附属设备表2’均可能为空,所以使用了Left Join,
但出来结果为: SB_ID FSSBID1 FSSBID2
1 FSID1 FSID3
1 FSID2 FSID4
1 FSID1 FSID4
1 FSID2 FSID3
结果进行了一次排列。
================
我的考虑:
将设备附属设备表1,设备附属设备表2利用SQL建立一个序号字段如:设备附属设备表1:
No SB_ID、FSSBID1
1 1 FSID1
2 1 FSID2
设备附属设备表2:
No SB_ID、FSSBID2
1 1 FSID3
2 1 FSID4 然后利用left join对附属设备表1,设备附属设备表2的No进行一次连接。理论上是可以解决排列问题的。但我不知道如何用SQL实现类似效果--我用的是DB2。
《》》《》《》》《》求教!!!!!!!!!!!