SQLで副で問い合わせたときグループバイやDISTINCTがエラーになってしまいます。
何故なのか検討がつきません。
同じデータを持つ様々なデータベースでやってますがどれもエラーになります。
オラクルやMYSQLやpostgreSQLです。
SELECT * FROM TableName
WHERE
担当 IN (SELECT 担当 FROM TableName WHERE 売上品 = '竹輪') AND
担当 IN (SELECT 担当 FROM TableName WHERE 売上品 = '胡瓜') AND
売上品 IN ('竹輪','胡瓜')
;
これは普通に出来ます。
これに対して…
SELECT distinct 担当, 商品, 売上品 from…かGroup By 担当, 商品とやっても何故かエラーが出ます…
何か間違ってますでしょうか?
No.1ベストアンサー
- 回答日時:
SELECT 担当, 商品, count(*) FROM TableName
WHERE
担当 IN (SELECT 担当 FROM TableName WHERE 売上品 = '竹輪') AND
担当 IN (SELECT 担当 FROM TableName WHERE 売上品 = '胡瓜') AND
売上品 IN ('竹輪','胡瓜')
GROUP BY 担当, 商品
;
とか普通に通ると思いますけど?
・DISTINCTが、他の何かと矛盾する。
・GROUP BYが、他の何かと矛盾する。
のだと思いますよ。
ちなみに、担当 IN (SELECT 担当 FROM TableName WHERE 売上品 = '竹輪') のような
WHEREに指定するメンバーシップ検査が、GROUP BYやDISTINCTの邪魔はしません。
No.2
- 回答日時:
とりあえず、エラーコードを載せましょう。
また、再現するコードを載せましょう。
> SELECT distinct 担当, 商品, 売上品
> from…か
> Group By 担当, 商品
> とやっても何故かエラーが出ます
これをみるかぎりだと、select とgroup byの項目が
あっていないだけに見えますが?
こんな感じ?
>select distinct empno,ename ,count(*) from emp group by empno
> *
>行1でエラーが発生しました。:
>ORA-00979: GROUP BYの式ではありません。
このORA-xxxxが重要です。このエラーコードがわからない限り、何のエラーだか第三者にはわかりません。
根本の問題として、distinctとgroup byの使用目的は異なります。
・distinctは重複を省く。
・group byは集計を行う。
目的(仕様)をはっきりさせれば、おのずと使用するsqlは決まります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 日本の全市区町村を人口密度が低 1 2023/06/18 19:51
- MySQL 共通点はあります。何が違うのでしょうか? 1 2023/01/27 05:22
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
orace SQL文のエラー(ORA-0092...
-
データベースのカラムの型がCHA...
-
CASLⅡ 文字データから数値デー...
-
IPアドレスを数値に変換
-
テーブルやカラムの物理名のネ...
-
64bit端末でのOLEDB接続に関して
-
sqlで質問です。 idを元にidに...
-
私は時々、アイホンを充電する...
-
パソコンの画面が滑るのはなぜ...
-
副問合せにLIKE文を使う方法は...
-
SQL 2つのテーブルとSUBSTRING...
-
osqleditについて
-
IT 就職よくできますか?? 資格...
-
Oracle SQRの正式名称は何ですか?
-
オラクルのビューの存在について
-
PL/SQLでフェッチでNULLの項目...
-
oracleのimpdpでORA-39166
-
SQLの中上級者へのレベルアップ...
-
Object Browser相関タブの見方...
-
batファイルでのSQL(oracle)...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
サブクエリとDISTINCTGROUPBYの...
-
GROUP BYを行った後に結合した...
-
Oracleでの文字列連結サイズの上限
-
Accessで別テーブルの値をフォ...
-
SELECTで1件のみ取得するには?
-
select句副問い合わせ 値の個...
-
SQL文で右から1文字だけ削除す...
-
GROUP BYを使ったSELECT文の総...
-
ADO VBA 実行時エラー3021
-
ファイル書込みで一行もしくは...
-
select insertで複数テーブルか...
-
JSPのNULLレコード表示について...
-
レコードが存在しなかった場合
-
Access終了時の最適化が失敗?
-
実績累計の求め方と意味を教え...
-
sqlplusの処理が途中でとまる
-
Excelでセルの書式設定を使用し...
-
SQL文で素早くNULLを除外する方法
-
OracleのSQL*PLUSで、デー...
-
キーが同じを複数行を1行にま...
おすすめ情報