我试图用这个查询得到一些结果,问题是当我尝试使用没有YEAR(a.period_end)的“GROUP BY c.campus”时,很明显得到了按校园分组的结果,并且正确地对它们进行排序比如“2012,2013,2014,2015”,问题是EndYear混合,不是所有年份都显示...提前致谢。有可能做一个“SUM”子查询或应该做什么?
查询现在:
SELECT DISTINCT a.user, a.service, GROUP_CONCAT(b.account) accounts,
YEAR(a.period_end) AS EndYear,
SUM(a.consum) AS SumConsumEngy,
SUM(a.cost) AS SumCostEngy, c.campus
FROM `sdspanel1`.`pdc_consum_engy` a
INNER JOIN `sdspanel1`.`ctrl_services` b ON(a.servicio = b.id)
INNER JOIN `sdspanel1`.`pdc_services_engy` c ON(c.accuont = b.account)
WHERE c.campus IS NOT NULL AND c.campus <> ''
AND a.period_end IS NOT NULL AND a.period_end <> ''
GROUP BY YEAR(a.period_end), c.campus, b.account, a.service, a.user
ORDER BY YEAR(a.period_end) ASC ;
现在选择结果:
user service accounts EndYear SumConsumEngy SumCostEngy Campus
4 14 191,191 2012 9919293 33339493 cname1
4 23 238,388 2012 9283182 31931993 cname1
4 14 191,191 2013 999293 3939493 cname1
4 14 191,191 2013 991293 939493 cname1
4 23 238,388 2014 9183182 31432993 cname2
4 23 238,388 2012 9083182 31731993 cname2
4 14 191,191 2012 9999293 36539403 cname2
4 23 238,388 2013 9283182 32931923 cname2
4 14 191,191 2013 9919293 33039843 cname2
4 23 238,388 2014 9283182 31231993 cname2
让我解释一下更好左右,基本上是按校园, “SUM”,“再“或通过任何其他查询或方法,SumConsEngy和SumCostEngy,EndYear应该”按年排序(a.period_end)ASC“,SConsum ####和SCost ####应该是到相应校园的新年数。当我尝试查询我的时候,只按“c.campus”进行分组,它并没有显示所有年份。
我问什么是这样的:
user service accounts EndYear SumConsumEngy SumCostEngy Campus
4 snumbers acnumbers 2012 SConsum2012 SCost2012 cname1
4 snumbers acnumbers 2013 SConsum2013 SCost2013 cname1
4 snumbers acnumbers 2014 SConsum2014 SCost2014 cname1
4 snumbers acnumbers 2015 SConsum2015 SCost2015 cname1
4 snumbers acnumbers 2016 SConsum2016 SCost2016 cname1
4 snumbers acnumbers 2011 SConsum2011 SCost2011 cname2
4 snumbers acnumbers 2012 SConsum2012 SCost2012 cname2
4 snumbers acnumbers 2013 SConsum2013 SCost2013 cname2
4 snumbers acnumbers 2014 SConsum2012 SCost2012 cname2
4 snumbers acnumbers 2015 SConsum2012 SCost2012 cname2
4 snumbers acnumbers 2016 SConsum2012 SCost2012 cname2
等等...
如果不按年份分组,则结果中的年份将是从所分组字段中遇到的值中选出的一个(有效)随机数。 – Uueerdo
请更好地解释..我不明白你的目标..你现在需要按年结果吗? – scaisEdge
更新的问题 –