私はダイナミックな結果のための単純な投影MySQLエラー:sql_modeの= ONLY_FULL_GROUP_BY
SELECT
M.nom_utilisateur,
SUM(M.montant_bulletin) as Montant_Total_BS,
SUM(M.montant_payer ) as Montant_Total_payer,
COUNT(M.ref_bs) as nbr_bs_total,
(SELECT COUNT(*) FROM mutuelle_bi.`Mutuelle` WHERE nom_utilisateur = M.nom_utilisateur AND (M.nom_assurence = "Star" AND M.etat_bs = "Remboursé")) as nbr_bs_total_payer,
(SELECT COUNT(*) FROM mutuelle_bi.`Mutuelle` WHERE nom_utilisateur = M.nom_utilisateur AND (M.nom_assurence = "Star" AND M.etat_bs = "Non remboursé")) as nbr_bs_non_payer,
(SELECT COUNT(*) FROM mutuelle_bi.`Mutuelle` WHERE nom_utilisateur = M.nom_utilisateur AND (M.nom_assurence = "Star" AND M.etat_bs = "En cours")) as nbr_bs_en_cours,
(SELECT COUNT(*) FROM mutuelle_bi.`Mutuelle` WHERE nom_utilisateur = M.nom_utilisateur AND (M.nom_assurence = "Star" AND M.etat_bs = "Nouveau")) as nbr_bs_nouveau
FROM mutuelle_bi.`Mutuelle` M
WHERE M.nom_assurence = "Star"
GROUP BY M.nom_utilisateur
を行うために使用していますが、何かがうまくいかない、このスクリプトを持っています。私はこのエラーを持っているように:
1055 - SELECTリストの式#5は、GROUP BY句ではなく、 は、GROUP BY句で列に 機能的に依存しない非集約列「mutuelle_bi.M.etat_bs」を含みます;これは
どのように私は私のSQL Serverのいずれかの設定ファイルを変更してはならないことを考えると、この問題を解決するための方法で を私のスクリプトを変更することがありONLY_FULL_GROUP_BY = sql_modeのと互換性がない です。と私はスクリプトを書く必要があります
任意の提案??
サブクエリの代わりに条件付きカウントを使用する必要があります。 – Shadow
'only_full_group_by'を残そうとしているかどうかは完全にはっきりしていません。これは現在のセッションでのみ変更できますが、偽の結果セットを防止する機能です。 –
非集約列の 'ANY_VALUE()'関数を簡単に使うことができます。参照:http://stackoverflow.com/a/40578865/439171 –