none
怎麽两个SQL语句的结果会不一样呢? RRS feed

  • 问题

  • --语句一

    SELECT str(sum(convert(dec(17,2),sysfiles.size)) / 128,10,2) AS Total_MB,
    SUM(( database_files.size - FILEPROPERTY(database_files.name, 'SpaceUsed') )) / 128.0 AS free_space_mb
    FROM    dbo.sysfiles as sysfiles,sys.database_files as database_files WHERE sysfiles.[groupid]  <>0
    AND database_files.[type] <> 1;

    --语句二

    SELECT str(sum(convert(dec(17,2),sysfiles.size)) / 128,10,2) FROM   dbo.sysfiles WHERE sysfiles.[groupid]  <>0

    想了半天未想明白

    2014年5月29日 13:30

答案

  • 加上inner join之后好了

    SELECT str(sum(convert(dec(17,2),sysfiles.size)) / 128,10,2) AS Total_MB,
    SUM(( database_files.size - FILEPROPERTY(database_files.name, 'SpaceUsed') )) / 128.0 AS free_space_mb
    FROM    dbo.sysfiles as sysfiles INNER JOIN sys.database_files as database_files ON sysfiles.[fileid]=database_files.[file_id] WHERE sysfiles.[groupid]  <>0
    AND database_files.[type] <> 1;

    2014年5月29日 15:01

全部回复

  • Result of 'select * from dbo.sysfiles where groupid <> 0'?
    2014年5月29日 14:54
  • 加上inner join之后好了

    SELECT str(sum(convert(dec(17,2),sysfiles.size)) / 128,10,2) AS Total_MB,
    SUM(( database_files.size - FILEPROPERTY(database_files.name, 'SpaceUsed') )) / 128.0 AS free_space_mb
    FROM    dbo.sysfiles as sysfiles INNER JOIN sys.database_files as database_files ON sysfiles.[fileid]=database_files.[file_id] WHERE sysfiles.[groupid]  <>0
    AND database_files.[type] <> 1;

    2014年5月29日 15:01