私はこのクエリでいくつかの結果を得ようとしていますが、問題は "GROUP BY c.campus"をYEAR(a.period_end)なしで使用しようとしたときに結果がキャンパスごとにグループ化され、 「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が "YEAR(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
更新された質問 –