首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于归拢查询统计

2013-12-04 
关于合并查询统计SELECTco_cl_oid, ISNULL(SUM(co_amount), 0) AS 年度应收租金FROMO_ChargeLogWHERE(co_c

关于合并查询统计


SELECT   co_cl_oid, 
ISNULL(SUM(co_amount), 0) AS 年度应收租金
FROM      O_ChargeLog
WHERE   (co_ci_name = '月租金') AND (YEAR(co_date) = '2013')
GROUP BY co_cl_oid
 

SELECT   co_cl_oid, 
ISNULL(SUM(co_amount_actual), 0) AS 年度实收租金
 FROM      O_ChargeLog
WHERE   (co_ci_name = '月租金') AND (YEAR(co_date) = '2013') AND  (YEAR(co_charge_date)<='2013')
GROUP BY co_cl_oid
 

SELECT   co_cl_oid, 
ISNULL(SUM(co_amount_actual), 0) AS 租金补交
FROM      O_ChargeLog
WHERE   (co_ci_name = '月租金') AND (YEAR(co_date) = '2013') AND (YEAR(co_charge_date)>'2013')
GROUP BY co_cl_oid


这三条语句能直接写成一条么?直接查出一个表三个列 sql 分组
[解决办法]
SELECT  co_cl_oid ,
        SUM(年度应收租金) 年度应收租金 ,
        SUM(年度实收租金) 年度实收租金 ,
        SUM(租金补交) 租金补交
FROM    ( SELECT    co_cl_oid ,
                    ISNULL(SUM(co_amount), 0) AS 年度应收租金 ,
                    0 年度实收租金 ,
                    0 租金补交
          FROM      O_ChargeLog
          WHERE     ( co_ci_name = '月租金' )
                    AND ( YEAR(co_date) = '2013' )
          GROUP BY  co_cl_oid
          UNION ALL
          SELECT    co_cl_oid ,
                    0 ,
                    ISNULL(SUM(co_amount_actual), 0) AS 年度实收租金 ,
                    0
          FROM      O_ChargeLog
          WHERE     ( co_ci_name = '月租金' )
                    AND ( YEAR(co_date) = '2013' )
                    AND ( YEAR(co_charge_date) <= '2013' )
          GROUP BY  co_cl_oid
          UNION ALL
          SELECT    co_cl_oid ,
                    0 ,
                    0 ,
                    ISNULL(SUM(co_amount_actual), 0) AS 租金补交
          FROM      O_ChargeLog
          WHERE     ( co_ci_name = '月租金' )
                    AND ( YEAR(co_date) = '2013' )
                    AND ( YEAR(co_charge_date) > '2013' )


          GROUP BY  co_cl_oid
        ) a
GROUP BY co_cl_oid

热点排行