当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 实现按部门月卡余额总额分组统计的SQL查询代码

MSSQL
ACCESS改为SQL需要注意哪几个地方
把sql数据和access数据整合成一个数据集
SQL中Print语句的烦恼
关于SQL server中字段值为null的查询
得出SQL语句的执行时间的方法
如何在SqlServer与oracel中进行分页的讨论!
分页SQLServer存储过程
怎么清除sql server日志
Sql数据库MDF数据文件数据库恢复
SQL Server存储图像数据的策略与方法
sql server关于函数中如何使用Getdate()
将使用Access的论坛迁移到SqLServer中
ACCESS:跨数据库查询的SQL语句
SQLSERVER扩展存储过程XP_CMDSHELL的简单应用
在SQL Server中快速删除重复记录
调整SQLServer2000运行中数据库结构
SQL Server中查询时显示行号的方法
从数据库中随机抽N条记录
确保所有的非空(Non-NULL)值都是唯一的
使用视图控制用户对数据访问

MSSQL 中的 实现按部门月卡余额总额分组统计的SQL查询代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 115 ::
收藏到网摘: n/a

 

陈优章的专栏

(原创,到现在为至最为复杂的SQL查询代码)实现按部门月卡余额总额分组统计的SQL查询代码(在Ms SQL Server中调试通过)

SELECT dp.dpname1 AS 部门, cust_dp_SumOddfre.sum_oddfare AS 当月卡总余额
FROM (SELECT T_Department.DpCode1, SUM(custid_SumOddfare_group.sum_oddfare)
              AS sum_oddfare
        FROM (SELECT l2.CustomerID, SUM(r1.oddfare) AS sum_oddfare
                FROM (SELECT CustomerID, MAX(OpCount) AS max_opcount
                        FROM (SELECT CustomerID, OpCount, RTRIM(CAST(YEAR(OpDt)
                                      AS char)) + '-' + RTRIM(CAST(MONTH(OpDt) AS char))
                                      + '-' + RTRIM(DAY(0)) AS dt
                                FROM T_ConsumeRec
                                UNION
                                SELECT CustomerID, OpCount, RTRIM(CAST(YEAR(cashDt)
                                      AS char)) + '-' + RTRIM(CAST(MONTH(cashDt) AS char))
                                      + '-' + RTRIM(DAY(0)) AS dt
                                FROM T_Cashrec) l1
                        WHERE (dt <= '2005-6-1')/*输入查询月份,可用参数传递*/
                        GROUP BY CustomerID) l2 INNER JOIN
                          (SELECT CustomerID, OpCount, oddfare
                         FROM T_ConsumeRec
                         UNION
                         SELECT CustomerID, OpCount, oddfare
                         FROM T_Cashrec) r1 ON l2.CustomerID = r1.CustomerID AND
       &nb