检查一下你的各个表的数据,
我觉得你对比一下你的视图数据:
selec count(*) from V_USER_INFO 
select count(*) from T_USER_INFO
不出意外的话,记录数显然不相等问题就在这里了。。

解决方案 »

  1.   

    SELECT T_DEV_LIST1.DEVICE_ID 设备编号, T_DEV_LIST1.DEVICE_ALIAS 设备别名,
           V_USER_INFO1.USER_NAME 人员姓名
    FROM T_DEV_LIST T_DEV_LIST1, T_DEV_TYPE T_DEV_TYPE1, (SELECT T_USER_INFO.USER_ID
                                                         FROM T_USER_INFO, T_DEPART_INFO
                                 WHERE (T_USER_INFO.DEPART_ID = T_DEPART_INFO.DEPART_ID)
                                                          )V_USER_INFO1
    WHERE (T_DEV_TYPE1.DEVTYPE_NAME = '笔记本电脑' )AND 
          T_DEV_TYPE1.DEVTYPE_ID  =  T_DEV_LIST1.DEVTYPE_ID AND 
          V_USER_INFO1.USER_ID(+) =  T_DEV_LIST1.USER_ID
    ORDER BY 设备编号  ASC通过T_USER_INFO.DEPART_ID = T_DEPART_INFO.DEPART_ID筛选出来的V_USER_INFO1.USER_ID与满足
    (T_DEV_TYPE1.DEVTYPE_NAME = '笔记本电脑' )AND 
          T_DEV_TYPE1.DEVTYPE_ID  =  T_DEV_LIST1.DEVTYPE_ID条件的T_DEV_LIST1.USER_ID只有一条记录(即1020050939相等),自然是一个设备编号了。你可以不用视图来查询的
      

  2.   

    楼上的,我搜索出来的应该不止一条记录啊,从设备编号看是一条记录,可是设备别名,人员看搜索出来不止一条记录,就这点奇怪啊,因为T_DEV_TYPE1每条记录的设备别名都是不一样的,那么如果搜索出来的编号全部是1020050939,那么设备别名应该也是一样的,现在是设备别名搜索出来不一样,显然从设备别名来看是不止一条记录的,奇怪就奇怪在这里啊!
      

  3.   

    To:  topken(topken)
    selec count(*) from V_USER_INFO 
    select count(*) from T_USER_INFO
    一样的
      

  4.   

    to:qiaozhiwei(乔) 
    1:查询结果不一样的,去掉最后一个条件,那么记录就有T_DEV_LIST1 x V_USER_INFO1条记录了啊。
    2:我就是用少量数据测试的