前提・実現したいこと
該当するテーブルから重複したデータの抽出を行いたいです。
そのとき、特定の列の値の「半角」「全角」を区別しないという条件をつけたいです。
詳細
以下のようなテーブルがあったとします。
■商品テーブル
メーカー 用途 種別 型番 販売開始日 在庫
アディダス | サッカー用品 | スパイク | AAA | 2018/08/10 | 有
アディダス | サッカー用品 | スパイク | AAA | 2018/08/10 | 有
アディダス | 野球用品 | バッド | BBB | 2018/06/01 | 有
ナイキ | サッカー用品 | スパイク | CCC | 2018/05/01 | 無
ナイキ | 野球用品 | グローブ | DDD | 2018/08/20 | 無
ナイキ | 野球用品 | バッド | EEE | 2018/04/05 | 有
プーマ | 陸上用品 | ジャージ | FFF | 2018/03/01 | 有
プーマ | 陸上用品 | ウェア | GGG | 2018/02/01 | 有
アシックス | 陸上用品 | ジャージ | HHH | 2017/12/01 | 有
アシックス | 陸上用品 | ウェア | FFF | 2018/06/10 | 有
抽出したい条件は以下の通りです。
・メーカー、用途、種別、型番、販売開始日が同一のレコード
・型番は、英字の大文字/小文字、英数字・カタカナの半角/全角の区別はしない
この場合、1行目と2行目のレコードが該当します。
該当のSQL文
まだ途中ではありますが以下にて確認お願い致します。
SELECT * FROM 商品テーブル T1 LEFT JOIN ( SELECT メーカー , 用途 , 種別 , 型番 , 販売開始日 , COUNT(*) AS CNT FROM 商品テーブル GROUP BY メーカー , 用途 , 種別 , 型番 , 販売開始日 ) T2 ON T1.メーカー = T2.メーカー AND T1.用途 = T2.用途 AND T1.種別 = T2.種別 AND T1.型番 = T2.型番 AND T1.販売開始日 = T2.販売開始日 WHERE T2.CNT > 1
補足情報(FW/ツールのバージョンなど)
[DB]
OS Windows Server 2012 R2
Oracle11g R2
的外れなSQL文かと思いますが
どうしても抽出条件を満たす文が分かりません。
よろしくお願い致します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/30 01:02