统计的sql,排序后,查出的数据前半部分是对的,后部分顺序就乱了
select (case when sum(a.n0) is null then 0 else sum(a.n0) end) n0,
(case when sum(a.n1) is null then 0 else sum(a.n1) end) n1,
(case when sum(a.n2) is null then 0 else sum(a.n2) end) n2,
a.yab003,
(case when sum(a.n3) is null then 0 else sum(a.n3) end) n3,
(case when sum(a.n4) is null then 0 else sum(a.n4) end) n4,
(case when sum(a.n5) is null then 0 else sum(a.n5) end) n5,
(case when sum(a.n6) is null then 0 else sum(a.n6) end) n6,
(case when sum(a.ymoney) is null then 0.0 else sum(a.ymoney) end) ymoney,
(case when sum(a.zmoney) is null then 0.0 else sum(a.zmoney) end)zmoney
from (
select
count(*) as n0,0 n1,0
n2,yab003,0 n3,0 n4,0 n5, 0
n6,0 ymoney,0 zmoney from
logistics.consignmentnew
where
TO_DAYS(NOW())-TO_DAYS(FROM_UNIXTIME(signtime)) <= 1 and
issign='1'
and
effective='0' and yab003 in ('20001','20002','20026','20030','20031','20032','20033','20035','20038','20039','20046','20050','20052','20053','20055','20056','20057','20058','20059','20061','20062','20063','20064','20065','20066','20067','20069','20070','20071','20072','20073','20085','20086','20087','20088','20090','20148','20149','20150','20151','20152','20153','20155','20156','20157','20158','20159','20160','20161','20162','20163','20164','20165','20166','20167','20168','20169','20170','20171','20172','20173','20174','20175','20176','20177','20178','20179','20180','20181','20182','20183','20184','20185','20186','20187','20188','20189','20190','20191','20192','20193')
group by yab003
union all
select 0 n0,count(*) as n1,0
n2,yab003,0 n3,0 n4 ,0 n5, 0 n6,0 ymoney,0
zmoney from
logistics.consignmentnew
where YEAR(now()) =
YEAR(date(signtime)) and issign='1' and
effective='0' and yab003 in
('20001','20002','20026','20030','20031','20032','20033','20035','20038','20039','20046','20050','20052','20053','20055','20056','20057','20058','20059','20061','20062','20063','20064','20065','20066','20067','20069','20070','20071','20072','20073','20085','20086','20087','20088','20090','20148','20149','20150','20151','20152','20153','20155','20156','20157','20158','20159','20160','20161','20162','20163','20164','20165','20166','20167','20168','20169','20170','20171','20172','20173','20174','20175','20176','20177','20178','20179','20180','20181','20182','20183','20184','20185','20186','20187','20188','20189','20190','20191','20192','20193')
group by yab003
union all
select 0 n0,0 n1,count(*) as
n2,yab003 ,0 n3,0
n4 ,0 n5, 0 n6, 0 ymoney,0 zmoney from
logistics.consignmentnew
where YEAR(date_sub(now(), interval 1 YEAR)) =
YEAR(date(signtime))
and
issign='1' and effective='0' and yab003 in
('20001','20002','20026','20030','20031','20032','20033','20035','20038','20039','20046','20050','20052','20053','20055','20056','20057','20058','20059','20061','20062','20063','20064','20065','20066','20067','20069','20070','20071','20072','20073','20085','20086','20087','20088','20090','20148','20149','20150','20151','20152','20153','20155','20156','20157','20158','20159','20160','20161','20162','20163','20164','20165','20166','20167','20168','20169','20170','20171','20172','20173','20174','20175','20176','20177','20178','20179','20180','20181','20182','20183','20184','20185','20186','20187','20188','20189','20190','20191','20192','20193')
group by yab003
union all
select 0 n0,0 n1,0
n2,yab003 ,0
n3,count(*) as n4 ,0 n5, 0 n6,0 ymoney,0 zmoney from
logistics.consignmentnew
where 1=1 and YEAR(now()) =
YEAR(date(signtime)) and issign='1' and
effective='0' and MONTH(now())
=
MONTH(date(signtime)) and yab003 in ('20001','20002','20026','20030','20031','20032','20033','20035','20038','20039','20046','20050','20052','20053','20055','20056','20057','20058','20059','20061','20062','20063','20064','20065','20066','20067','20069','20070','20071','20072','20073','20085','20086','20087','20088','20090','20148','20149','20150','20151','20152','20153','20155','20156','20157','20158','20159','20160','20161','20162','20163','20164','20165','20166','20167','20168','20169','20170','20171','20172','20173','20174','20175','20176','20177','20178','20179','20180','20181','20182','20183','20184','20185','20186','20187','20188','20189','20190','20191','20192','20193')
group by yab003
union
all
select 0 n0,0 n1,0
n2,yab003,count(*) as n3,0 n4,0 n5, 0 n6,0
ymoney,0 zmoney from
logistics.consignuser
WHERE effective='0' and
yab003 in ('20001','20002','20026','20030','20031','20032','20033','20035','20038','20039','20046','20050','20052','20053','20055','20056','20057','20058','20059','20061','20062','20063','20064','20065','20066','20067','20069','20070','20071','20072','20073','20085','20086','20087','20088','20090','20148','20149','20150','20151','20152','20153','20155','20156','20157','20158','20159','20160','20161','20162','20163','20164','20165','20166','20167','20168','20169','20170','20171','20172','20173','20174','20175','20176','20177','20178','20179','20180','20181','20182','20183','20184','20185','20186','20187','20188','20189','20190','20191','20192','20193')
group by yab003
union all
select 0 n0,0 n1,0
n2,yab003,0 n3,0 n4,count(*) as n5, 0 n6,0 ymoney,0 zmoney from
logistics.consignuser
WHERE effective='0' and YEAR(now()) =
YEAR(date(createtime))
and
MONTH(now()) = MONTH(date(createtime)) and
yab003 in ('20001','20002','20026','20030','20031','20032','20033','20035','20038','20039','20046','20050','20052','20053','20055','20056','20057','20058','20059','20061','20062','20063','20064','20065','20066','20067','20069','20070','20071','20072','20073','20085','20086','20087','20088','20090','20148','20149','20150','20151','20152','20153','20155','20156','20157','20158','20159','20160','20161','20162','20163','20164','20165','20166','20167','20168','20169','20170','20171','20172','20173','20174','20175','20176','20177','20178','20179','20180','20181','20182','20183','20184','20185','20186','20187','20188','20189','20190','20191','20192','20193')
group by yab003
union all
select 0 n0,0 n1,0
n2,yab003,0 n3,0 n4,0 n5,count(*) as n6, 0 ymoney,0 zmoney from
logistics.consignuser
WHERE effective='0' and YEAR(now()) =
YEAR(date(createtime)) and yab003 in ('20001','20002','20026','20030','20031','20032','20033','20035','20038','20039','20046','20050','20052','20053','20055','20056','20057','20058','20059','20061','20062','20063','20064','20065','20066','20067','20069','20070','20071','20072','20073','20085','20086','20087','20088','20090','20148','20149','20150','20151','20152','20153','20155','20156','20157','20158','20159','20160','20161','20162','20163','20164','20165','20166','20167','20168','20169','20170','20171','20172','20173','20174','20175','20176','20177','20178','20179','20180','20181','20182','20183','20184','20185','20186','20187','20188','20189','20190','20191','20192','20193')
group by yab003
union
all
select 0 n0,0 n1,0 n2,yab003,0 n3,0 n4,0 n5,0 n6,(case when
sum(money) is
null then 0 else sum(money) end) as ymoney,0 zmoney from
logistics.charge where 1=1 and YEAR(now()) = YEAR(date(time)) and
inorout='0' and chargetype='0' and yab003 in ('20001','20002','20026','20030','20031','20032','20033','20035','20038','20039','20046','20050','20052','20053','20055','20056','20057','20058','20059','20061','20062','20063','20064','20065','20066','20067','20069','20070','20071','20072','20073','20085','20086','20087','20088','20090','20148','20149','20150','20151','20152','20153','20155','20156','20157','20158','20159','20160','20161','20162','20163','20164','20165','20166','20167','20168','20169','20170','20171','20172','20173','20174','20175','20176','20177','20178','20179','20180','20181','20182','20183','20184','20185','20186','20187','20188','20189','20190','20191','20192','20193')
group by yab003
union all
select 0 n0,0 n1,0 n2,yab003,0 n3,0 n4,0 n5,0 n6,0
ymoney,(case
when sum(money) is null then 0 else sum(money) end) as
zmoney from
logistics.charge where YEAR(now()) = YEAR(date(time)) and
inorout='0'
and MONTH(now()) =MONTH(date(time)) and chargetype='0' and
yab003 in ('20001','20002','20026','20030','20031','20032','20033','20035','20038','20039','20046','20050','20052','20053','20055','20056','20057','20058','20059','20061','20062','20063','20064','20065','20066','20067','20069','20070','20071','20072','20073','20085','20086','20087','20088','20090','20148','20149','20150','20151','20152','20153','20155','20156','20157','20158','20159','20160','20161','20162','20163','20164','20165','20166','20167','20168','20169','20170','20171','20172','20173','20174','20175','20176','20177','20178','20179','20180','20181','20182','20183','20184','20185','20186','20187','20188','20189','20190','20191','20192','20193')
group by yab003
)a
group by a.yab003
ORDER BY a.n3 desc
修改之后,在外面又嵌套了一层,分页数据也对了
select * from(
(select (case when sum(a.n0) is null then 0 else sum(a.n0) end) n0,
(case when sum(a.n1) is null then 0 else sum(a.n1) end) n1,
(case when sum(a.n2) is null then 0 else sum(a.n2) end) n2,
a.yab003,
(case when sum(a.n3) is null then 0 else sum(a.n3) end) n3,
(case when sum(a.n4) is null then 0 else sum(a.n4) end) n4,
(case when sum(a.n5) is null then 0 else sum(a.n5) end) n5,
(case when sum(a.n6) is null then 0 else sum(a.n6) end) n6,
(case when sum(a.ymoney) is null then 0.0 else sum(a.ymoney) end) ymoney,
(case when sum(a.zmoney) is null then 0.0 else sum(a.zmoney) end)zmoney
from (
select
count(*) as n0,0 n1,0
n2,yab003,0 n3,0 n4,0 n5, 0
n6,0 ymoney,0 zmoney from
logistics.consignmentnew
where
TO_DAYS(NOW())-TO_DAYS(FROM_UNIXTIME(signtime)) <= 1 and
issign='1'
and
effective='0' and yab003 in ('20001','20002','20026','20030','20031','20032','20033','20035','20038','20039','20046','20050','20052','20053','20055','20056','20057','20058','20059','20061','20062','20063','20064','20065','20066','20067','20069','20070','20071','20072','20073','20085','20086','20087','20088','20090','20148','20149','20150','20151','20152','20153','20155','20156','20157','20158','20159','20160','20161','20162','20163','20164','20165','20166','20167','20168','20169','20170','20171','20172','20173','20174','20175','20176','20177','20178','20179','20180','20181','20182','20183','20184','20185','20186','20187','20188','20189','20190','20191','20192','20193')
group by yab003
union all
select 0 n0,count(*) as n1,0
n2,yab003,0 n3,0 n4 ,0 n5, 0 n6,0 ymoney,0
zmoney from
logistics.consignmentnew
where YEAR(now()) =
YEAR(date(signtime)) and issign='1' and
effective='0' and yab003 in
('20001','20002','20026','20030','20031','20032','20033','20035','20038','20039','20046','20050','20052','20053','20055','20056','20057','20058','20059','20061','20062','20063','20064','20065','20066','20067','20069','20070','20071','20072','20073','20085','20086','20087','20088','20090','20148','20149','20150','20151','20152','20153','20155','20156','20157','20158','20159','20160','20161','20162','20163','20164','20165','20166','20167','20168','20169','20170','20171','20172','20173','20174','20175','20176','20177','20178','20179','20180','20181','20182','20183','20184','20185','20186','20187','20188','20189','20190','20191','20192','20193')
group by yab003
union all
select 0 n0,0 n1,count(*) as
n2,yab003 ,0 n3,0
n4 ,0 n5, 0 n6, 0 ymoney,0 zmoney from
logistics.consignmentnew
where YEAR(date_sub(now(), interval 1 YEAR)) =
YEAR(date(signtime))
and
issign='1' and effective='0' and yab003 in
('20001','20002','20026','20030','20031','20032','20033','20035','20038','20039','20046','20050','20052','20053','20055','20056','20057','20058','20059','20061','20062','20063','20064','20065','20066','20067','20069','20070','20071','20072','20073','20085','20086','20087','20088','20090','20148','20149','20150','20151','20152','20153','20155','20156','20157','20158','20159','20160','20161','20162','20163','20164','20165','20166','20167','20168','20169','20170','20171','20172','20173','20174','20175','20176','20177','20178','20179','20180','20181','20182','20183','20184','20185','20186','20187','20188','20189','20190','20191','20192','20193')
group by yab003
union all
select 0 n0,0 n1,0
n2,yab003 ,0
n3,count(*) as n4 ,0 n5, 0 n6,0 ymoney,0 zmoney from
logistics.consignmentnew
where 1=1 and YEAR(now()) =
YEAR(date(signtime)) and issign='1' and
effective='0' and MONTH(now())
=
MONTH(date(signtime)) and yab003 in ('20001','20002','20026','20030','20031','20032','20033','20035','20038','20039','20046','20050','20052','20053','20055','20056','20057','20058','20059','20061','20062','20063','20064','20065','20066','20067','20069','20070','20071','20072','20073','20085','20086','20087','20088','20090','20148','20149','20150','20151','20152','20153','20155','20156','20157','20158','20159','20160','20161','20162','20163','20164','20165','20166','20167','20168','20169','20170','20171','20172','20173','20174','20175','20176','20177','20178','20179','20180','20181','20182','20183','20184','20185','20186','20187','20188','20189','20190','20191','20192','20193')
group by yab003
union
all
select 0 n0,0 n1,0
n2,yab003,count(*) as n3,0 n4,0 n5, 0 n6,0
ymoney,0 zmoney from
logistics.consignuser
WHERE effective='0' and
yab003 in ('20001','20002','20026','20030','20031','20032','20033','20035','20038','20039','20046','20050','20052','20053','20055','20056','20057','20058','20059','20061','20062','20063','20064','20065','20066','20067','20069','20070','20071','20072','20073','20085','20086','20087','20088','20090','20148','20149','20150','20151','20152','20153','20155','20156','20157','20158','20159','20160','20161','20162','20163','20164','20165','20166','20167','20168','20169','20170','20171','20172','20173','20174','20175','20176','20177','20178','20179','20180','20181','20182','20183','20184','20185','20186','20187','20188','20189','20190','20191','20192','20193')
group by yab003
union all
select 0 n0,0 n1,0
n2,yab003,0 n3,0 n4,count(*) as n5, 0 n6,0 ymoney,0 zmoney from
logistics.consignuser
WHERE effective='0' and YEAR(now()) =
YEAR(date(createtime))
and
MONTH(now()) = MONTH(date(createtime)) and
yab003 in ('20001','20002','20026','20030','20031','20032','20033','20035','20038','20039','20046','20050','20052','20053','20055','20056','20057','20058','20059','20061','20062','20063','20064','20065','20066','20067','20069','20070','20071','20072','20073','20085','20086','20087','20088','20090','20148','20149','20150','20151','20152','20153','20155','20156','20157','20158','20159','20160','20161','20162','20163','20164','20165','20166','20167','20168','20169','20170','20171','20172','20173','20174','20175','20176','20177','20178','20179','20180','20181','20182','20183','20184','20185','20186','20187','20188','20189','20190','20191','20192','20193')
group by yab003
union all
select 0 n0,0 n1,0
n2,yab003,0 n3,0 n4,0 n5,count(*) as n6, 0 ymoney,0 zmoney from
logistics.consignuser
WHERE effective='0' and YEAR(now()) =
YEAR(date(createtime)) and yab003 in ('20001','20002','20026','20030','20031','20032','20033','20035','20038','20039','20046','20050','20052','20053','20055','20056','20057','20058','20059','20061','20062','20063','20064','20065','20066','20067','20069','20070','20071','20072','20073','20085','20086','20087','20088','20090','20148','20149','20150','20151','20152','20153','20155','20156','20157','20158','20159','20160','20161','20162','20163','20164','20165','20166','20167','20168','20169','20170','20171','20172','20173','20174','20175','20176','20177','20178','20179','20180','20181','20182','20183','20184','20185','20186','20187','20188','20189','20190','20191','20192','20193')
group by yab003
union
all
select 0 n0,0 n1,0 n2,yab003,0 n3,0 n4,0 n5,0 n6,(case when
sum(money) is
null then 0 else sum(money) end) as ymoney,0 zmoney from
logistics.charge where 1=1 and YEAR(now()) = YEAR(date(time)) and
inorout='0' and chargetype='0' and yab003 in ('20001','20002','20026','20030','20031','20032','20033','20035','20038','20039','20046','20050','20052','20053','20055','20056','20057','20058','20059','20061','20062','20063','20064','20065','20066','20067','20069','20070','20071','20072','20073','20085','20086','20087','20088','20090','20148','20149','20150','20151','20152','20153','20155','20156','20157','20158','20159','20160','20161','20162','20163','20164','20165','20166','20167','20168','20169','20170','20171','20172','20173','20174','20175','20176','20177','20178','20179','20180','20181','20182','20183','20184','20185','20186','20187','20188','20189','20190','20191','20192','20193')
group by yab003
union all
select 0 n0,0 n1,0 n2,yab003,0 n3,0 n4,0 n5,0 n6,0
ymoney,(case
when sum(money) is null then 0 else sum(money) end) as
zmoney from
logistics.charge where YEAR(now()) = YEAR(date(time)) and
inorout='0'
and MONTH(now()) =MONTH(date(time)) and chargetype='0' and
yab003 in ('20001','20002','20026','20030','20031','20032','20033','20035','20038','20039','20046','20050','20052','20053','20055','20056','20057','20058','20059','20061','20062','20063','20064','20065','20066','20067','20069','20070','20071','20072','20073','20085','20086','20087','20088','20090','20148','20149','20150','20151','20152','20153','20155','20156','20157','20158','20159','20160','20161','20162','20163','20164','20165','20166','20167','20168','20169','20170','20171','20172','20173','20174','20175','20176','20177','20178','20179','20180','20181','20182','20183','20184','20185','20186','20187','20188','20189','20190','20191','20192','20193')
group by yab003
)a
group by a.yab003)
) b
ORDER BY b.n2 desc