表:
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.   

    CREATE VIEW 设备线路关系表视图 AS
    SELECT 设备基本表.SB_ID,线路基本表.XL_NAME
    FROM 设备基本表,设备连接线关系表,连接线线路关系表,线路基本表
    WHERE 设备基本表.SB_ID=设备连接线关系表.SB_ID
    AND 设备连接线关系表.LJX_ID=连接线线路关系表.LJX_ID
    AND 连接线线路关系表.XL_NBBM=线路基本表.XL_NBBM
      

  2.   

    create view as
    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
      

  3.   

    create view 设备线路关系表视图 as
    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表名,视图名尽量不要用中文,有时会出错
      

  4.   

    现在存在的问题不是不能创建视图,而是视图中数据可能会重复。设备基本表
      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
    但用连接会出现重复记录
      

  5.   

    还有个问题--回答正确可以加分设备基本表
      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   
      

  6.   

    去除重复记录(MS SQL SERVER语法):
    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
      

  7.   

    还有个问题--回答正确可以加分设备基本表
      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
      

  8.   

    CREATE  VIEW 期望视图 AS
    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
      

  9.   

    现在出来的结果是:期望视图
        SB_ID   FSSBID1    FSSBID2
          1       FSID1      FSID3
          1       FSID2      FSID4
          1       FSID1      FSID4
          1       FSID2      FSID3不重复但进行了一次排列,如何避免这个问题
      

  10.   

    CREATE  VIEW 期望视图 AS
    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
      

  11.   

    我想将设备附属设备表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。
      

  12.   

    我把问题重新整理一下。
    ====背景资料
    设备基本表
      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。
    《》》《》《》》《》求教!!!!!!!!!!!