質問: sql文でのdistinct 皆さん、はじめまして。 表題の件について、お分かりの方教えて下さい。 まず、テーブルですが テーブル名:table1 得意先cd 得意先名 受注番号 枝番 受注金額 custcd custnm jychuno edano amount -------------------------------------------- 000001 aaaaaaa 0000001 01 111111 000001 aaaaaaa 0000001 02 222222 000001 aaaaaaa 0000002 01 333333 000002 bbbbbbb 0000001 01 444444 のような、取引明細テーブルがあったとします。 ご覧頂いてお分かりの通り、得意先cd毎に受注番号が振られていて さらに枝番で管理されています。 (枝番が全て01から始まれば、それだけ選べば良いんですが・・・) この時、同一得意先で受注番号が重複するデータは省きたいのですが どうdistinctを入れれば良いのか分かりません。 上記例では、2行目だけを省きたいのです。 select custcd , custnm , distinct juchuno , edano , amount from table1 orderby custcd , custnm , jychuno , edano; とするとエラーになります(当然)。 このような時って、どうすれば良いのでしょうか? 最近使い始めた素人ですので、宜しくお願い致します。
回答: こんにちは。 そういう場合は、「グルーピングする」と言います。 ですから、この場合、group byを使うのが正解のはずです。 ただし、edabanとamountはselectできませんよ。 グルーピングと矛盾しますから。