try:
SELECT a.PID,a.ne,count(a.NE) CNT,sum(b.TOTAL) ALLTOTAL
FROM Codes a
 LEFT JOIN Totals b ON b.PID=a.PID
GROUP BY a.PID,a.ne

解决方案 »

  1.   

    --首先,用下面的语句,检查/修复数据库/并整理索引碎片(需要比较长的时间,请在系统空闲时进行此工作)USE MASTER
    GOsp_dboption '你的数据库名', 'single user', 'true'
    GoDBCC CHECKDB('你的数据库名', REPAIR_REBUILD) 
    GoUSE 你的数据库名
    goexec sp_msforeachtable 'DBCC CHECKTABLE(''?'',REPAIR_REBUILD)'
    exec sp_msforeachtable 'DBCC DBREINDEX(''?'')'
    gosp_dboption '你的数据库名', 'single user', 'false'
    Go
      

  2.   

    --另外,在查询分析器中执行这样的语句会错吗?SELECT a.PID,count(distinct a.NE) CNT,sum(b.TOTAL) ALLTOTAL
    FROM Codes a
     LEFT JOIN Totals b ON b.PID=a.PID
    GROUP BY a.PID
    --如果只执行这句,是否也会错呢?
    SELECT a.PID,count(distinct a.NE) CNT
    FROM Codes a
    GROUP BY a.PID
      

  3.   

    SELECT a.PID,count(distinct a.NE) CNT
    FROM Codes a
    GROUP BY a.PID这个也不会出错
      

  4.   

    --这句能否执行?SELECT id,count(distinct colid) CNT
    FROM syscolumns
    GROUP BY id
    如果可以,证明问题出在你的表Codes上
    如果不可以,试试换个数据库再执行
        如果可以,证明是你的数据库的问题
        如果一样不可以,证明是sql的问题.那就做如下常规检查:
    1.查杀病毒
    2.安装操作系统的最新补丁
    3.安装SQL的最新补丁
    4.查看系统日志中有没有相关的记录说明
    5.跟踪一下,看看有没有异常的处理语句
    开始--程序--MS SQLSERVER
    --事件探察器(SQL Profiler)
    --文件
    --新建
    --设置跟踪的项目...
    --然后数据库的调用情况就会显示出来SQL补丁下载:
    '全部补丁的位置
    http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=9032f608-160a-4537-a2b6-4cb265b80766
    如果上述方法不能解决,则备份数据库,重新安装SQL