1

SQL Server 2008 を使用し、1 つの列にデータをグループ化するテーブルを破棄します。いくつかの理由で、GROUP BY代わりに使用する必要がありますDISTINCT(より複雑なクエリの一部です)。クエリ結果 (1 列のみが返される) は問題ありません。

問題は、このクエリをサブクエリ inWHERE句として使用して、このサブクエリに基づいてデータをフィルタリングすることです。ご覧のとおり、WHERE句はこのサブクエリで、グループ化後にクエリ結果に表示されるデータだけでなく、残りのデータも表示します。これは私が気に入らないことです。

group by私の質問は、グループ化後の結果のみが表示される where 句のサブクエリとしてクエリを使用するにはどうすればよいですか?

4

2 に答える 2

0

あなたの問題は、メインクエリがサブクエリの各アイテムに対して複数の行を返していることだと思いWHEREます。これは正しい動作です。メイン クエリの結果を制限するには、メイン クエリでDISTINCTまたはGROUP BYを使用する必要があります。

于 2013-02-12T09:25:39.503 に答える
0

サブクエリを使用して、既存のサブクエリから必要な列を選択できます。そして、この新しいサブクエリを入力としてwhere句に渡します。

于 2013-02-12T10:58:53.410 に答える