求大神帮助!!SQL查询加入累计后查出数据不对

不加累计查当日的(累计)都没问题,加了累计后查出数据不对,当日的和累计的都多出来了,求大神帮看看应该怎么改。

语句如下:

--查出当日数据正确
SELECT     LEFT(nhm,4),COUNT(rcbh) AS 车数, SUM(jz * 0.001) AS 净重, SUM(zkzl * 0.001) AS 扣杂量, SUM(yfzk * 0.001) AS 应付蔗款, SUM(yfyf * 0.001) AS 应付运费, SUM(klx * 0.001) AS 扣利息, SUM(kbj * 0.001) 
                      AS 扣本金
FROM         guobang
where DateDiff(dd,pzsj,getdate())=0
GROUP BY LEFT(nhm,4)

--不加累计查当日的正常
SELECT      LEFT(a.nhm, 4) AS 编码,b.xzmc AS 片区, c.xzmc AS 村委, COUNT(d.rcbh) AS 车数, SUM(d.jz * 0.001) AS 净重, SUM(d.zkzl * 0.001) AS 扣杂量, SUM(d.yfzk) AS 应付蔗款, SUM(d.yfyf) AS 应付运费, 
                      SUM(d.klx) AS 扣利息, SUM(d.kbj) AS 扣本金
FROM         nonghu AS a INNER JOIN
                          (SELECT     xzm, xzmc
                            FROM          XingZheng
                            GROUP BY xzm, xzmc) AS b ON LEFT(a.nhm, 2) = b.xzm INNER JOIN
                          (SELECT     xzm, xzmc
                            FROM          XingZheng AS XingZheng_1
                            GROUP BY xzm, xzmc) AS c ON LEFT(a.nhm, 4) = c.xzm LEFT JOIN
                          --当日数据
                          (SELECT     nhm, rcbh, jz, zkzl, yfzk, yfyf, klx, kbj
                            FROM          guobang
                            WHERE      (DATEDIFF(dd, pzsj, GETDATE()) = 0)) AS d ON a.nhm = d.nhm 
GROUP BY LEFT(a.nhm, 4), b.xzmc, c.xzmc

--加了累计后查出的数据不对
SELECT      LEFT(a.nhm, 4) AS 编码,b.xzmc AS 片区, c.xzmc AS 村委, COUNT(d.rcbh) AS 车数, SUM(d.jz * 0.001) AS 净重, SUM(d.zkzl * 0.001) AS 扣杂量, SUM(d.yfzk) AS 应付蔗款, SUM(d.yfyf) AS 应付运费, 
                      SUM(d.klx) AS 扣利息, SUM(d.kbj) AS 扣本金, COUNT(e.rcbh) AS 累计车数, SUM(e.jz * 0.001) AS 累计净重, SUM(e.zkzl * 0.001) AS 累计扣杂量, SUM(e.yfzk) AS 累计应付蔗款, SUM(e.yfyf) 
                      AS 累计应付运费, SUM(e.klx) AS 累计扣利息, SUM(e.kbj) AS 累计扣本金
FROM         nonghu AS a INNER JOIN
                          (SELECT     xzm, xzmc
                            FROM          XingZheng
                            GROUP BY xzm, xzmc) AS b ON LEFT(a.nhm, 2) = b.xzm INNER JOIN
                          (SELECT     xzm, xzmc
                            FROM          XingZheng AS XingZheng_1
                            GROUP BY xzm, xzmc) AS c ON LEFT(a.nhm, 4) = c.xzm LEFT JOIN
                          --当日数据
                          (SELECT     nhm, rcbh, jz, zkzl, yfzk, yfyf, klx, kbj
                            FROM          guobang
                            WHERE      (DATEDIFF(dd, pzsj, GETDATE()) = 0)) AS d ON a.nhm = d.nhm LEFT JOIN
                          --累计数据
                          (SELECT     nhm, rcbh, jz, zkzl, yfzk, yfyf, klx, kbj
                            FROM          guobang) AS e ON a.nhm = e.nhm
GROUP BY LEFT(a.nhm, 4), b.xzmc, c.xzmc

查询结果如下:

 

SELECT      LEFT(a.nhm, 4) AS 编码,b.xzmc AS 片区, c.xzmc AS 村委, COUNT(d.rcbh) AS 车数, SUM(d.jz * 0.001) AS 净重, SUM(d.zkzl * 0.001) AS 扣杂量, SUM(d.yfzk) AS 应付蔗款, SUM(d.yfyf) AS 应付运费, 

                      SUM(d.klx) AS 扣利息, SUM(d.kbj) AS 扣本金, COUNT(e.rcbh) AS 累计车数, SUM(e.jz * 0.001) AS 累计净重, SUM(e.zkzl * 0.001) AS 累计扣杂量, SUM(e.yfzk) AS 累计应付蔗款, SUM(e.yfyf) 

                      AS 累计应付运费, SUM(e.klx) AS 累计扣利息, SUM(e.kbj) AS 累计扣本金

FROM         nonghu AS a INNER JOIN

                          (SELECT     xzm, xzmc

                            FROM          XingZheng

                            GROUP BY xzm, xzmc) AS b ON LEFT(a.nhm, 2) = b.xzm INNER JOIN

                          (SELECT     xzm, xzmc

                            FROM          XingZheng AS XingZheng_1

                            GROUP BY xzm, xzmc) AS c ON LEFT(a.nhm, 4) = c.xzm LEFT JOIN

                          --当日数据

                          (SELECT     nhm, rcbh, jz, zkzl, yfzk, yfyf, klx, kbj

                            FROM          guobang

                            WHERE      (DATEDIFF(dd, pzsj, GETDATE()) = 0)) AS d ON a.nhm = d.nhm LEFT JOIN

                          --累计数据

                          (SELECT     LEFT(nhm, 4) as nhm, sum(rcbh) as rcbh, sum(jz) as jz,sum(zkzl) as zkzl,sum(yfzk) as yfzk,sum(yfyf) as yfyf,sum(klx) as klx,sum(kbj) as kbj

                            FROM          guobang group by LEFT(nhm, 4)) AS e ON LEFT(a.nhm, 4) = e.nhm

GROUP BY LEFT(a.nhm, 4), b.xzmc, c.xzmc

应该是这样

select 编码,片区, 村委, 车数,净重, 扣杂量, 应付蔗款, 应付运费, 扣利息, 扣本金, t2.rcbh AS 累计车数, t2.jz AS 累计净重, t2.zkzl AS 累计扣杂量, t2.yfzk AS 累计应付蔗款, t2.yfyf 
                      AS 累计应付运费, t2.klx AS 累计扣利息, t2.kbj AS 累计扣本金
 from
(SELECT      LEFT(a.nhm, 4) AS 编码,b.xzmc AS 片区, c.xzmc AS 村委, COUNT(d.rcbh) AS 车数, SUM(d.jz * 0.001) AS 净重, SUM(d.zkzl * 0.001) AS 扣杂量, SUM(d.yfzk) AS 应付蔗款, SUM(d.yfyf) AS 应付运费, 
                      SUM(d.klx) AS 扣利息, SUM(d.kbj) AS 扣本金
FROM         nonghu AS a INNER JOIN
                          (SELECT     xzm, xzmc
                            FROM          XingZheng
                            GROUP BY xzm, xzmc) AS b ON LEFT(a.nhm, 2) = b.xzm INNER JOIN
                          (SELECT     xzm, xzmc
                            FROM          XingZheng AS XingZheng_1
                            GROUP BY xzm, xzmc) AS c ON LEFT(a.nhm, 4) = c.xzm LEFT JOIN
                          --当日数据
                          (SELECT     nhm, rcbh, jz, zkzl, yfzk, yfyf, klx, kbj
                            FROM          guobang
                            WHERE      (DATEDIFF(dd, pzsj, GETDATE()) = 0)) AS d ON a.nhm = d.nhm 
GROUP BY LEFT(a.nhm, 4), b.xzmc, c.xzmc)  as t
LEFT JOIN
                          --累计数据
                          (SELECT     LEFT(nhm, 4) as nhm, COUNT(rcbh) as rcbh, sum(jz) * 0.001 as jz,sum(zkzl) * 0.001 as zkzl,sum(yfzk) as yfzk,sum(yfyf) as yfyf,sum(klx) as klx,sum(kbj) as kbj
                            FROM          guobang group by LEFT(nhm, 4)) AS t2 ON LEFT(t1.nhm, 4) = t2.nhm


select 编码,片区, 村委, 车数,净重, 扣杂量, 应付蔗款, 应付运费, 扣利息, 扣本金, t2.rcbh AS 累计车数, t2.jz AS 累计净重, t2.zkzl AS 累计扣杂量, t2.yfzk AS 累计应付蔗款, t2.yfyf 
                      AS 累计应付运费, t2.klx AS 累计扣利息, t2.kbj AS 累计扣本金
 from
(SELECT      LEFT(a.nhm, 4) AS 编码,b.xzmc AS 片区, c.xzmc AS 村委, COUNT(d.rcbh) AS 车数, SUM(d.jz * 0.001) AS 净重, SUM(d.zkzl * 0.001) AS 扣杂量, SUM(d.yfzk) AS 应付蔗款, SUM(d.yfyf) AS 应付运费, 
                      SUM(d.klx) AS 扣利息, SUM(d.kbj) AS 扣本金
FROM         nonghu AS a INNER JOIN
                          (SELECT     xzm, xzmc
                            FROM          XingZheng
                            GROUP BY xzm, xzmc) AS b ON LEFT(a.nhm, 2) = b.xzm INNER JOIN
                          (SELECT     xzm, xzmc
                            FROM          XingZheng AS XingZheng_1
                            GROUP BY xzm, xzmc) AS c ON LEFT(a.nhm, 4) = c.xzm LEFT JOIN
                          --当日数据
                          (SELECT     nhm, rcbh, jz, zkzl, yfzk, yfyf, klx, kbj
                            FROM          guobang
                            WHERE      (DATEDIFF(dd, pzsj, GETDATE()) = 0)) AS d ON a.nhm = d.nhm 
GROUP BY LEFT(a.nhm, 4), b.xzmc, c.xzmc)  as t
LEFT JOIN
                          --累计数据
                          (SELECT     LEFT(nhm, 4) as nhm, COUNT(rcbh) as rcbh, sum(jz) * 0.001 as jz,sum(zkzl) * 0.001 as zkzl,sum(yfzk) as yfzk,sum(yfyf) as yfyf,sum(klx) as klx,sum(kbj) as kbj
                            FROM          guobang group by LEFT(nhm, 4)) AS t2 ON LEFT(t.nhm, 4) = t2.nhm