SELECT   (SELECT   ROUND (SUM (landuse.area), 2)
            FROM   GIS_SYS.STAT_LANDUSE landuse
           WHERE       landuse.layername IS NULL
                   AND landuse.objid IS NULL
                   AND landuse.USERID = '674')
         - (SELECT   NVL (ROUND (SUM (landuse2.area), 2), 0)
              FROM   GIS_SYS.STAT_LANDUSE landuse2
             WHERE   landuse2.layername = 'g_construction_plan'
                     AND landuse2.USERID = '674')
            area
  FROM   GIS_SYS.STAT_LANDUSE landuse里面相减的两个语句查出的结果都是一个值,但是整个语句运行后出来的是很多值,并且值都是一样的,是什么原因

解决方案 »

  1.   

    --查出一个值
    SELECT   (SELECT   ROUND (SUM (landuse.area), 2)
                FROM   GIS_SYS.STAT_LANDUSE landuse
               WHERE       landuse.layername IS NULL
                       AND landuse.objid IS NULL
                       AND landuse.USERID = '674')
             - (SELECT   NVL (ROUND (SUM (landuse2.area), 2), 0)
                  FROM   GIS_SYS.STAT_LANDUSE landuse2
                 WHERE   landuse2.layername = 'g_construction_plan'
                         AND landuse2.USERID = '674')
                area
      FROM   dual;
      

  2.   

    很简单,你试试
    select 'aa', landuse.* FROM   GIS_SYS.STAT_LANDUSE landuse;