SELECT [ProductionTasks].[ptID]
 ,[ProductionTasks].[wsID]
         ,[ptStyleNo]
 ,[ptStyle]
 ,[ptAmount]
 ,[ptDueDate]
 ,[ptCreatorID]
 ,[ptModifyID]
         ,[ptStatus]
 ,[ptCreationDate]
 ,Processes.*
 ,ProductionTaskItems.*
 ,Count(ProductionTaskItems.ptiID) as ItemCount
  FROM [ProductionTasks]
  LEFT JOIN ProductionTaskItems
  ON [ProductionTasks].ptID=ProductionTaskItems.ptID
  LEFT JOIN Processes
  ON Processes.pID=ProductionTaskItems.ptID

解决方案 »

  1.   

    有分组函数时,查询的列必须要包括在聚合函数或者分组里,这是语法规定,oracle和server一样!
    建议:把其它没有count的列加上不影响取值的聚合函数,比如说min,max,因为你查出来也是固定的,加上也没影响。或者就把没有count的列写到group by里。
      

  2.   

    语法错了,有count后边得有group by 啊
      

  3.   

    group by 要把非聚合函数以外的字段都列进去。
      

  4.   

    这个很简单 遇到过的就知道 count();改成count 就可以了
      

  5.   

    SELECT [ProductionTasks].[ptID]
    ,[ProductionTasks].[wsID]
    ,[ptStyleNo]
    ,[ptStyle]
    ,[ptAmount]
    ,[ptDueDate]
    ,[ptCreatorID]
    ,[ptModifyID]
    ,[ptStatus]
    ,[ptCreationDate]
    ,Processes.*
    ,ProductionTaskItems.*
    ,Count(ProductionTaskItems.ptiID) as ItemCount
    FROM [ProductionTasks]
    LEFT JOIN ProductionTaskItems
    ON [ProductionTasks].ptID=ProductionTaskItems.ptID
    LEFT JOIN Processes
    ON Processes.pID=ProductionTaskItems.ptID
    group by [ProductionTasks].[ptID]
    ,[ProductionTasks].[wsID]
    ,[ptStyleNo]
    ,[ptStyle]
    ,[ptAmount]
    ,[ptDueDate]
    ,[ptCreatorID]
    ,[ptModifyID]
    ,[ptStatus]
    ,[ptCreationDate]
    ,Processes.*
    ,ProductionTaskItems.*(*都要填满)
      

  6.   

    按7楼的写法,Group By后面写的参数太多了 有没有简化的办法?
      

  7.   

    先想清楚你要的是什么的count
      

  8.   

    Count pitID 。  只是这样 我不清楚还要怎么描述 需要清楚些什么 
      

  9.   

    原理:用子查询来代替count()函数,没测,应该行,不过效率会降低,如果数据量小的话问题不大,不要偷懒,group by才是应该的。SELECT [ProductionTasks].[ptID]
    ,[ProductionTasks].[wsID]
    ,[ptStyleNo]
    ,[ptStyle]
    ,[ptAmount]
    ,[ptDueDate]
    ,[ptCreatorID]
    ,[ptModifyID]
    ,[ptStatus]
    ,[ptCreationDate]
    ,Processes.*
    ,ProductionTaskItems.*
    ,(select Count(ProductionTaskItems.ptiID) FROM [ProductionTasks]
    LEFT JOIN ProductionTaskItems
    ON [ProductionTasks].ptID=ProductionTaskItems.ptID
    LEFT JOIN Processes
    ON Processes.pID=ProductionTaskItems.ptID) as ItemCount
    FROM [ProductionTasks]
    LEFT JOIN ProductionTaskItems
    ON [ProductionTasks].ptID=ProductionTaskItems.ptID
    LEFT JOIN Processes
    ON Processes.pID=ProductionTaskItems.ptID
      

  10.   


    SELECT [ProductionTasks].[ptID]
    ,[ProductionTasks].[wsID]
    ,[ptStyleNo]
    ,[ptStyle]
    ,[ptAmount]
    ,[ptDueDate]
    ,[ptCreatorID]
    ,[ptModifyID]
    ,[ptStatus]
    ,[ptCreationDate]
    ,Processes.*
    ,ProductionTaskItems.*
    ,Count(ProductionTaskItems.ptiID) as ItemCount
    FROM [ProductionTasks]
    LEFT JOIN ProductionTaskItems
    ON [ProductionTasks].ptID=ProductionTaskItems.ptID
    LEFT JOIN Processes
    ON Processes.pID=ProductionTaskItems.ptID group by ItemCount
      

  11.   

    运行提示“列名ItemCount无效”