A,SELECT * FROM [order details] ORDER BY productid,employeeid COMPUTE SUM (quantity)B, SELECT * FROM [order details] ORDER BY productid,employeeid COMPUTE SUM (quantity) BY productid
C,SELECT * FROM [order details] ORDER BY productid,employeeid COMPUTE SUM (quantity) BY employeeid
D,SELECT * FROM [order details] ORDER BY productid,employeeid COMPUTE SUM (quantity) BY employeeid,productid
答案选CD,实在不懂,CD选项好像也只是将分组类别改变而已,跪求大虾解释 

解决方案 »

  1.   

    当与 BY 一起使用时,COMPUTE 子句在结果集内生成控制中断和小计。
    官方已经不推荐使用这个方式,建议改用ROLLUP
      

  2.   

    a和b都是对的,c和d有语法错误。
    --运行正确
    SELECT * FROM sys.objects 
    ORDER BY object_id,is_ms_shipped 
    COMPUTE SUM (schema_id)--运行正确
    SELECT * FROM sys.objects 
    ORDER BY object_id,is_ms_shipped 
    COMPUTE SUM (parent_object_id) BY object_id
    /*
    消息 143,级别 15,状态 1,第 3 行
    在排序依据列表中没有找到 COMPUTE BY 子句中的某一项。
    计算依据列表中的所有表达式也必须同时出现在排序依据列表中。compute by中的列只能是object_id,或者就是object_id和is_ms_shipped 
    */
    SELECT * FROM sys.objects  
    ORDER BY object_id,is_ms_shipped 
    COMPUTE SUM (parent_object_id) BY is_ms_shipped
    /*
    消息 143,级别 15,状态 1,第 3 行
    在排序依据列表中没有找到 COMPUTE BY 子句中的某一项。
    计算依据列表中的所有表达式也必须同时出现在排序依据列表中。也就是order by中列和compute by中的列的顺序要一样才对,否则报错。
    */
    SELECT * FROM sys.objects 
    ORDER BY object_id,is_ms_shipped 
    COMPUTE SUM (parent_object_id) BY is_ms_shipped ,object_id
      

  3.   

    答案选CD
    --> 请问题目是什么? 答案AB的语法上也没有错误的,关键是题目问的是什么.