Pim-community-dev: 問題別のMSSQLServerグループ

作成日 2017年11月13日  ·  4コメント  ·  ソース: akeneo/pim-community-dev

url:
/ rest / attribute /

エラー:
'SELECT p0 _。[id] AS id_0、p0 _。[sort_order] AS sort_order_1、p0 _。[useable_as_grid_filter] AS useable_as_grid_filter_2、p0 _。[max_characters] AS max_characters_3、p0 _。[validation_rule] AS validate_rule_4、p0の実行中に例外が発生しましたvalidate_regexp] AS validate_regexp_5、p0 _。[wysiwyg_enabled] AS wysiwyg_enabled_6、p0 _。[number_min] AS number_min_7、p0 _。[number_max] AS number_max_8、p0 _。[decimals_allowed] AS decimals_allowed_9、p0 _。[decimals_allowed] AS decimals_allowed_9、p0_。 AS date_min_11、p0 _。[date_max] AS date_max_12、p0 _。[metric_family] ASmetric_family_13、p0 _。[default_metric_unit] ASdefault_metric_unit_14、p0 _。[max_file_size] AS max_file_size_15、p0 _。[allowed_extensions] ASallowed_extensions_ 、p0 _。[is_required] AS is_required_18、p0 _。[is_unique] AS is_unique_19、p0 _。[is_localizable] AS is_localizable_20、p0 _。[is_scopable] AS is_scopable_21、p0 _。[code] AS code_22、p0 _。[ent_ 23、p0。 LEFT JOIN pim_catalog_attribute_group p1_ ON p0_.group_id = p1_.id GROUP BYp0 _。[id] ORDER BY(SELECT 0)OFFSET 0 ROWS FETCH NEXT 20 ROWS ONLY ':

SQLSTATE [42000、8120]:[Microsoft] [SQLServer用ODBCドライバー13] [SQLServer]列 'pim_catalog_attribute.sort_order'は、集計関数またはGROUP BY句のいずれにも含まれていないため、選択リストで無効です。
SQLSTATE [42000、8180]:[Microsoft] [SQLServer用ODBCドライバー13] [SQLServer]ステートメントを準備できませんでした。

問題は次のとおりです。
/src/Pim/Bundle/EnrichBundle/Doctrine/ORM/Repository/AttributeSearchableRepository.php
ライン:160

最も参考になるコメント

こんにちは@ahocquard
システム要件について知っています。
問題は、Akeneoがその改善を受け入れるかどうかということです。

AkeneoをMSSQLで動作させる顧客がいます。
この分野の改善に興味がある場合は、Akeneoのコアチームの誰かと話し合った後、プルリクエストを準備できます。どのソリューションが受け入れられますか。
そうでなければ、私たちは自分たちのために改善を続けます。

また、MySQLはSQL標準をより厳密にする方向に進んでいるため、この領域の改善はMySQLにも役立つことを覚えておいてください。 また、postgresqlなどの他のDBMSでAkeneoを使用する方法も開きます。

ご質問やご不明な点がございましたら、Akeneoのたるみにご連絡ください。

全てのコメント4件

こんにちは、

AkeneoPIMはMSSQLServerと一緒にインストールしないでください。
システム要件を確認してください: https

データベースとしてMysql> = 5.7.8でインストールする必要があります。

よろしく、
アレクサンドル

こんにちは@ahocquard
システム要件について知っています。
問題は、Akeneoがその改善を受け入れるかどうかということです。

AkeneoをMSSQLで動作させる顧客がいます。
この分野の改善に興味がある場合は、Akeneoのコアチームの誰かと話し合った後、プルリクエストを準備できます。どのソリューションが受け入れられますか。
そうでなければ、私たちは自分たちのために改善を続けます。

また、MySQLはSQL標準をより厳密にする方向に進んでいるため、この領域の改善はMySQLにも役立つことを覚えておいてください。 また、postgresqlなどの他のDBMSでAkeneoを使用する方法も開きます。

ご質問やご不明な点がございましたら、Akeneoのたるみにご連絡ください。

こんにちは@tmotyl

その点で、私たちは間違いなく改善の余地があります!
MySQL ONLY_FULL_GROUP_BY構成パラメーターで遊ぶこともできるので、MSSQLで得られるものと非常によく似たエラーが発生する可能性があります。
https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_only_full_group_by

MySQLで再現したら、改善点を確認できれば幸いです。

コードを使用して別のPRを開くことを躊躇しないでください。

前もって感謝します !

こんにちは@tmotyl

チームと話し合った後、適切なGROUP BY構文(ONLY_FULL_GROUP_BYモード)にすでに準拠しているようです。 だから私は修正されたままです( @ahocquardに感謝し

指定したクエリは、SQL99仕様のセクションT301「機能依存性」に従って有効です。

この場合、 id列はGROUP_BY使用される列です。 また、この列は主キーであるため、主キーと同じ行に属するすべてのデータがこのidにリンクされていることを検証し、 idから選択できるようにします。集計関数も、GROUPBY側に存在する必要もありません。

したがって、問題は、Transact-SQLに実装されていないように見えるMSSQLサーバー(またはおそらくお使いのバージョン)にあります。

このページは役に立ちましたか?
0 / 5 - 0 評価