select top 40 * from 
(
SELECT  top 130
a1.guid,
a1.f001 as name,
a1.f002 as name2,
convert(varchar(10),a1.mtime,20) as mytimeFROM dbo.p_news001Trigger a1 
INNER JOIN dbo.P_NEWS003Trigger a3 
ON a1.GUID = a3.GUID 
INNER JOIN dbo.P_NEWS004 a4 
ON a3.F001 = a4.F001 
and left(a3.f001,6)='004001'
and a1.mtime>'2007-10-7' 
order by a1.mtime desc 
)错误信息,就是说我最后的)前面有语法错误,但是括号里面的那组SELECT能正常执行
Msg 102, Level 15, State 1, Line 17
Incorrect syntax near ')'.

解决方案 »

  1.   


    select top 40 * from 
    (
    SELECT  top 130
    a1.guid,
    a1.f001 as name,
    a1.f002 as name2,
    convert(varchar(10),a1.mtime,20) as mytimeFROM dbo.p_news001Trigger a1 
    INNER JOIN dbo.P_NEWS003Trigger a3 
    ON a1.GUID = a3.GUID 
    INNER JOIN dbo.P_NEWS004 a4 
    ON a3.F001 = a4.F001 
    and left(a3.f001,6)='004001'
    and a1.mtime>'2007-10-7' 
    order by a1.mtime desc 
    )a
    --加表别名
      

  2.   

    select top 40 * from 
    (
    SELECT  top 130
    a1.guid,
    a1.f001 as name,
    a1.f002 as name2,
    convert(varchar(10),a1.mtime,20) as mytimeFROM dbo.p_news001Trigger a1 
    INNER JOIN dbo.P_NEWS003Trigger a3 
    ON a1.GUID = a3.GUID 
    INNER JOIN dbo.P_NEWS004 a4 
    ON a3.F001 = a4.F001 
    and left(a3.f001,6)='004001'
    and a1.mtime>'2007-10-7' 
    order by a1.mtime desc 
    )a
    --加表别名
      

  3.   


    select top 40 * from 
    (
    SELECT  top 130
    a1.guid,
    a1.f001 as name,
    a1.f002 as name2,
    convert(varchar(10),a1.mtime,20) as mytimeFROM dbo.p_news001Trigger a1 
    INNER JOIN dbo.P_NEWS003Trigger a3 
    ON a1.GUID = a3.GUID 
    INNER JOIN dbo.P_NEWS004 a4 
    ON a3.F001 = a4.F001 
    and left(a3.f001,6)='004001'
    and a1.mtime>'2007-10-7' 
    order by a1.mtime desc 
    ) t  --要加别名
    order by mtime
      

  4.   

    select top 40 * from 
    (
    SELECT  top 130
    a1.guid,
    a1.f001 as name,
    a1.f002 as name2,
    convert(varchar(10),a1.mtime,20) as mytimeFROM dbo.p_news001Trigger a1 
    INNER JOIN dbo.P_NEWS003Trigger a3 
    ON a1.GUID = a3.GUID 
    INNER JOIN dbo.P_NEWS004 a4 
    ON a3.F001 = a4.F001 
    and left(a3.f001,6)='004001'
    and a1.mtime>'2007-10-7' 
    order by a1.mtime desc 
    )ttttt--別名忘記了