1

次の列を持つ特定のクエリを回転させる同じ問題が発生し続けます。

CAST((COALESCE(price, 0.000000)) AS DECIMAL(18,6)) * quantity amount (TITLE 'Amount')

グループ内で言及しない場合はエラー3504が発生し、言及しない場合はエラー3627が発生します。

クエリのこの部分を適切に構成する方法について何かアイデアはありますか?

編集:さらに情報が必要な場合は、遠慮なくお問い合わせください:)

4

1 に答える 1

1

ここで複数の問題が発生していると思います(これ以上のコードがないと言うのは難しいです)。

3504は、この列がGROUP BY句の一部ではない場合に発生します。これは、GROUP BYの一部ではないすべての列が「集計」関数(SUM、MAX、MIN、AVGなど)である必要があるためです。これをGROUPBYに含めると、この列に問題がなくなります。

ただし、私の推測では、選択リストにはCOUNT(DISTINCT(x))も含まれていると思います。GROUP BYも使用している場合、クエリのSELECT、ORDER BY、またはHAVING句でDISTINCT関数を使用することはできません。DISTINCTを削除して、COUNT(*)を残しておけば、これでうまくいくと思います。

余談ですが、ここで言及している列でグループ化するかどうかはわかりません。金額でグループ化するのは珍しいことです。たとえば、この列がSUM関数で集計されるのがより一般的です。または、GROUP BYを使用している理由を再検討することもできます(「amount」でグループ化すると奇妙な結果が得られ、GROUP BY列と「amount」を除いて、返される行ごとに1行が返されます。同じで、1行に折りたたまれます。つまり、一貫性のない結果が得られます)。

お役に立てれば。

于 2011-07-29T02:15:43.057 に答える