+ -
当前位置:首页 → 问答吧 → SQL分类汇总(高分求解决)

SQL分类汇总(高分求解决)

时间:2011-12-08

来源:互联网

SQL code

select * from
(SELECT    Department.DepartmentName as 接单部门,
           Employee.EmployeeName as 接单人员,
           COUNT(Orders.OrderNO) as 订单量, 
           (Customers.CustomerName1 + '  ' + Customers.CustomerName2) AS 客户姓名,
           sum(Orders.OrderSuitePrice) 套系金额,
           sum(OrdersPayState.ActualSuite) 已付金额, 
           sum(OrdersPayState.PayableSuite) 未付金额,
           Orders.OrderDate 订单日期,
           Orders.OrderDepartmentNO
FROM       Customers LEFT OUTER JOIN
           Department INNER JOIN
           Employee INNER JOIN
           Orders ON Employee.EmployeeNO = Orders.OrderEmployeeNO ON Department.DepartmentNO = Orders.OrderDepartmentNO ON 
           Customers.CustomerNO = Orders.CustomerNO FULL OUTER JOIN
           OrdersPayState ON Orders.OrderNO = OrdersPayState.OrderNO
WHERE     (Orders.IsDelete = 0) AND (Orders.OrderState = 1)
GROUP BY  Department.DepartmentName, Employee.EmployeeName,Customers.CustomerName1,Customers.CustomerName2,Orders.OrderDate,Orders.OrderDepartmentNO
union all 
SELECT    Department.DepartmentName 接单部门,
          '小计' , 
          count(Orders.OrderNO) as 订单数量 ,
          (Customers.CustomerName1 + '  ' + Customers.CustomerName2) AS 客户姓名, 
          sum(Orders.OrderSuitePrice) 套系金额,
          sum(OrdersPayState.ActualSuite) 已付金额, 
          sum(OrdersPayState.PayableSuite) 未付金额,
          Orders.OrderDate 订单日期, 
          Orders.OrderDepartmentNO
FROM      Customers LEFT OUTER JOIN
          Department INNER JOIN
          Employee INNER JOIN
          Orders ON Employee.EmployeeNO = Orders.OrderEmployeeNO ON Department.DepartmentNO = Orders.OrderDepartmentNO ON 
          Customers.CustomerNO = Orders.CustomerNO FULL OUTER JOIN
          OrdersPayState ON Orders.OrderNO = OrdersPayState.OrderNO
WHERE     (Orders.IsDelete = 0) AND (Orders.OrderState = 1)
GROUP BY  Department.DepartmentName,Customers.CustomerName1,Customers.CustomerName2,Orders.OrderDate,Orders.OrderDepartmentNO
union all
SELECT    '合计' 接单部门,           
          '合计' , 
          count(Orders.OrderNO) as 订单数量 ,
          ' ' ,
          sum(Orders.OrderSuitePrice) 套系金额, 
          sum(OrdersPayState.ActualSuite) 已付金额, 
          sum(OrdersPayState.PayableSuite) 未付金额,
          '' , 
          '' 
FROM      Customers LEFT OUTER JOIN
          Department INNER JOIN
          Employee INNER JOIN
          Orders ON Employee.EmployeeNO = Orders.OrderEmployeeNO ON Department.DepartmentNO = Orders.OrderDepartmentNO ON 
          Customers.CustomerNO = Orders.CustomerNO FULL OUTER JOIN
          OrdersPayState ON Orders.OrderNO = OrdersPayState.OrderNO
WHERE     Orders.IsDelete = 0 AND Orders.OrderState = 1
) A
ORDER BY A.接单部门,A.接单人员


这个查询出来为什么又不能排序了呢

小计 排在了一起 而已总计都显示不出来什么原因啊

作者: yuanwei90315   发布时间: 2011-12-08

不要上总表,自己搞个几行有代表性的测试数据和对应测试数据想要的结果
看会了别人的思路的话,改成你需要的只是细节变化而已
你这样上代码坑爹呢

作者: geniuswjt   发布时间: 2011-12-08

作者: yuanwei90315   发布时间: 2011-12-08

热门下载

更多