アプリ版:「スタンプのみでお礼する」機能のリリースについて

SQLでの抽出方法について

以下のようなデータからデータを編集しようと思っていますが、どのようなコーディングをすれば取り出すことができるのか困っています。ご教示していただけたらと思います。よろしくお願いいたします。

(元データ:Table1)
顧客ID,請求日,個数,金額
10001,20190108,1,108
10002,20190108,2,216
10003,20190107,3,324
10004,20190106,4,432
10005,20190108,5,540

(編集後データ)
顧客ID,内容,個数,金額
10001,2018年12月販売分,1,108
10002,2018年12月販売分,2,216
10003,2018年12月販売分,3,324
10004,2018年12月販売分,4,432
10005,2018年12月販売分,5,540

☆Table1については1顧客につき1件ずつ、前月販売分の請求した内容が入っています。請求日については、当月日付が半角8桁の文字列(YYYYMMDD)で入っています。
☆編集後データでは、請求日−1ヶ月を求めた年月をYYYY年MM月販売分と内容(全角文字)にて抽出します。

A 回答 (2件)

請求日の文字列を日付型に変換するのは TO_DATE 関数


月の減算は ADD_MONTH 関数で -1 を指定
日付型を文字列に変換するのは TO_CHAR 関数
半角の数字を全角に変換するのは多分 TRANSLATE 関数でできるかと
文字列をつなぐ演算子は || です

あとはがんばってください
    • good
    • 1
この回答へのお礼

よろずやkinchan様

ご多忙のところ、いつも回答していただきまして、ありがとうございます。
ほかの回答者様からのご指摘のとおり、丸投げのルール違反である質問を繰り返し、
恥ずかしく思っております。
そのようななか、回答をしていただき、感謝しております。

よろずやkinchan様のご回答や、マニュアルなどを調べた結果、
以下のとおりで動作することができましたので、
お礼と私なりに作成してみた内容を記載させていただきます。
ありがとうございました。

TO_MULTI_BYTE(SUBSTRB(ADD_MONTHS(TO_DATE(Table1.請求日,'yyyymmdd'),-1), 1, 4)) || '年' ||
TO_MULTI_BYTE(LTRIM(SUBSTRB(ADD_MONTHS(TO_DATE(Table1.請求日,'yyyymmdd'),-1), 6, 2), '0')) || '月販売分'

お礼日時:2019/01/10 17:27

これだけわからないのか?全然わからないのかが、わかりません。


全然わからないのなら、基礎から、勉強してくださいな。
ここだけわからないなら、自分が考えたやり方を示し、どこで悩んでいるかを説明すべきかと。
丸投げは、ルール違反です。
    • good
    • 0
この回答へのお礼

puyo3155様

厳しいご指摘、ありがとうございます。

丸投げのルール違反であり、申し訳ありませんでした。
全く分かっていない、本当に私自身大バカ者で情けなく痛感しております。
SQLが苦手なため、困ったらこちらのサイトにて相談させていただいていましたが、
今している仕事自体失格である、正直これからやっていこうという気持ちも下がるほど、
丸投げ質問をしている自分に恥をかき、情けなく思っています。

この度は大変申し訳ございませんでした。

お礼日時:2019/01/10 17:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す