バージョン選択

フォーラム

メニュー

オンライン状況

38 人のユーザが現在オンラインです。 (31 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 38
もっと...

サイト内検索

質問 > フロント機能 > ポイントの有効期限

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
dsh
投稿日時: 2015/12/14 13:04
対応状況: −−−
常連
登録日: 2014/8/8
居住地:
投稿: 39
ポイントの有効期限
ポイントに有効期限をつけたくて調べておりました。
http://eccubememo.blog52.fc2.com/blog-entry-26.html

↑こちらのブログを拝見したのですが、
SQLの事がさっぱりわからず質問いたします。

【質問1.】開く場所はデーターベース内にある
dtb_customer/point/Edit SQLでよろしいでしょうか?

【質問2.】そこには下記のように記載されております。
『SELECT "point", count(*) AS "count" FROM "dtb_customer" GROUP BY "point" ORDER BY "point"』

その続きで下記を追加すれば良いのでしょうか?
(条件は最終購入日から12ヶ月でOptです)

『update dtb_customer set point=0
where CAST(last_buy_date + '12 months' AS timestamp) <= CURRENT_TIMESTAMP ;』

つまり

SELECT "point", count(*) AS "count" FROM "dtb_customer" GROUP BY "point" ORDER BY "point"
update dtb_customer set point=0
where CAST(last_buy_date + '12 months' AS timestamp) <= CURRENT_TIMESTAMP ;

こんな感じで大丈夫でしょうか?
どなたかよろしくお願いいたします。

------------------------------------------------------------
EC-CUBE 2.12.5
DB PostgreSQL 8.2.23
karin
投稿日時: 2015/12/15 16:40
対応状況: −−−
仙人
登録日: 2008/9/15
居住地: 東京都
投稿: 689
Re: ポイントの有効期限
dsh 様

該当のSQLは参照記事のこの部分だと思います。

(SQL1)
//最終購買日から24ヶ月以上経過した会員のポイントを0にする
update dtb_customer set point=0
where CAST(last_buy_date + '24 months' AS timestamp) <= CURRENT_TIMESTAMP ;

※12ヶ月にする場合は要引数変更。

SQLで直接DBに変更を加えようとしているように見受けられますが、
SQLの知識がない状態でSQLを実行すると想定外のトラブルが発生する可能性がありますので、おすすめできません。
どうしても作業する必要がある場合は、作業前にDBのバックアップをとっておくことをおすすめします。


----------------

dsh
投稿日時: 2015/12/15 18:58
対応状況: −−−
常連
登録日: 2014/8/8
居住地:
投稿: 39
Re: ポイントの有効期限
karin 様

回答ありがとうございます。

『update dtb_customer set point=0
where CAST(last_buy_date + '24 months' AS timestamp) <= CURRENT_TIMESTAMP ;』

↑この部分が該当する箇所ということはわかるのですが
DB内のdtb_customer/point/Edit SQLを開くと

『SELECT "point", count(*) AS "count" FROM "dtb_customer" GROUP BY "point" ORDER BY "point"』

↑このように記載されていて...この続きで

『update dtb_customer set point=0
where CAST(last_buy_date + '12 months' AS timestamp) <= CURRENT_TIMESTAMP ;』

↑これを書き込んで良いのかがわかりません。
お分かりでしょうか?

もしくは、DBを触らなくても期限をつける方法ありますか?

想定外のトラブル、重々承知しております...
本当は触りたくない場所なのですが、どうしても必要なので困っております。

バックアップとっておく必要ありますね。
アドバイスありがとうございます。
karin
投稿日時: 2015/12/15 20:18
対応状況: −−−
仙人
登録日: 2008/9/15
居住地: 東京都
投稿: 689
Re: ポイントの有効期限
dsh 様


『SELECT "point", count(*) AS "count" FROM "dtb_customer" GROUP BY "point" ORDER BY "point"』
これは本件とは関係のないSQLです。

おそらくphpPgAdminをご利用かと推測されますが、
今回のSQLを実行する場合、
ページ上部の「SQL」というリンクをクリックするとSQL入力画面が "空の状態で表示" されるはずですので、
そこへdsh様のSQLを入力し「実行する」ボタンをクリックするとSQLが実行されます。

update dtb_customer set point=0
where CAST(last_buy_date + '12 months' AS timestamp) <= CURRENT_TIMESTAMP;



----------------

dsh
投稿日時: 2015/12/21 10:16
対応状況: −−−
常連
登録日: 2014/8/8
居住地:
投稿: 39
Re: ポイントの有効期限
Karin 様

回答ありがとうございます。

稼動サイトで実行する勇気がなかったので
テストサイトを立ち上げ、教えていただいた場所に
SQLを入力・実行をしてみましたがうまくいきませんでした。

結果をみる為に '12 months' も待っていられないので
'1 day' にしました。この書き方が間違っているのですかね・・

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,288名です
総投稿数は109,688件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.