我写了一个SQL语句,执行没有问题,但是创建视图的时候确出现了错误提示:查询设计器不支持 CASE SQL 构造。我的SQL语句如下:SELECT DISTINCT 
      dbo.ExitInfor.ID, dbo.ExitInfor.Code, dbo.ExitInfor.TruckNum, dbo.ExitInfor.Num, 
      dbo.ExitInfor.TheDate, dbo.ExitInfor.Operator, dbo.ExitInfor.BillMan, 
      dbo.ExitInfor.Re, dbo.EnterInfor.Name, dbo.EnterInfor.XinHao, 
      dbo.EnterInfor.GuiGe, dbo.EnterInfor. Product, dbo.EnterInfor.Unit, 
      dbo.ExitInfor.PerFee, dbo.ExitInfor.AllFee, n.AvgFee, dbo.ExitInfor.Audit, 
      dbo.ExitInfor.Auditer, dbo.ExitInfor.AuditDate, dbo.EnterInfor.TheID
FROM dbo.EnterInfor INNER JOIN
      dbo.ExitInfor ON dbo.EnterInfor.Code = dbo.ExitInfor.Code INNER JOIN
          (SELECT Code, CONVERT(decimal(10, 2), SUM(Num * PerFee) / (CASE SUM(Num) 
               WHEN 0 THEN 1 ELSE SUM(Num) END)) AS AvgFee
         FROM dbo.EnterInfor AS EnterInfor_1
         GROUP BY Code) n ON n.Code = dbo.EnterInfor.Code我现在需要用这个SQL语句创建一个视图,请问这个问题怎么解决???关注^^^^^^^^^

解决方案 »

  1.   


    CREATE VIEW v_name
    AS
    SELECT DISTINCT 
          dbo.ExitInfor.ID, dbo.ExitInfor.Code, dbo.ExitInfor.TruckNum, dbo.ExitInfor.Num, 
          dbo.ExitInfor.TheDate, dbo.ExitInfor.Operator, dbo.ExitInfor.BillMan, 
          dbo.ExitInfor.Re, dbo.EnterInfor.Name, dbo.EnterInfor.XinHao, 
          dbo.EnterInfor.GuiGe, dbo.EnterInfor. Product, dbo.EnterInfor.Unit, 
          dbo.ExitInfor.PerFee, dbo.ExitInfor.AllFee, n.AvgFee, dbo.ExitInfor.Audit, 
          dbo.ExitInfor.Auditer, dbo.ExitInfor.AuditDate, dbo.EnterInfor.TheID
    FROM dbo.EnterInfor INNER JOIN
          dbo.ExitInfor ON dbo.EnterInfor.Code = dbo.ExitInfor.Code INNER JOIN
              (SELECT Code, CONVERT(decimal(10, 2), SUM(Num * PerFee) / (CASE SUM(Num) 
                   WHEN 0 THEN 1 ELSE SUM(Num) END)) AS AvgFee
             FROM dbo.EnterInfor AS EnterInfor_1
             GROUP BY Code) n ON n.Code = dbo.EnterInfor.Code
      

  2.   

    什么运行环境?
    怎么会不支持case 呢?
      

  3.   

    CONVERT(decimal(10, 2) 列加个别名
      

  4.   

    刚刚在VS2005下的服务器资源管理器下,试了一下问题就解决了!我的SQL server 是2000