2017-05-05 5 views
-2

私は2つのテーブルを持っています: "complete_bets"と別の "users"。最初のテーブルでは、私はユーザーが利益と損失を入力することができますユーザーが週に何もしないで週ごとに合計プロファイルを取得する

http://prntscr.com/f4fmw7

ユーザテーブルには、ユーザーが登録していたときに我々は、日付を格納している列「user_registered」を持っている:一日一日は、ここではテーブルのスクリーンショットです。

私は週単位で利益を得たいと考えています。つまり、ウェブサイトのメンバーとしての週単位の利益を意味します。

SELECT CONCAT(YEAR(`date_added`), '/', WEEK(`date_added`)) AS lol, 
WEEK(`date_added`) AS week_name, SUM(profit) as overallProfit 
FROM wpdw_complete_bets 
WHERE user_id = '1' 
GROUP BY week_name 
ORDER BY date_added ASC 

をしかし、それは私の年の週を取得していますが、私は、ウェブサイト上のメンバーとして週数と利益/損失の週が賢明たい:

今私は、このクエリを使用しています。

私は彼が得るno_of_week_user_registerは、最初の週のユーザーの登録後のようなものです、彼は120を取得する第二週でのプロファイルとして、その登録フォーム4週目で100を取得すること

userId no_of_week_user_register profit 
1    1     100 
1    2     120 
1    4     150 

ような結果望ん150

どのように私はそれを働かせるために私のクエリを書くことができます知っている、どんな種類の助けがかなり認められるだろう。

+0

サンプルデータと予想される結果を画像またはリンクではなく、書式付きテキストとして送信します。 –

+0

質問を更新しました。今すぐ見てください –

+0

http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to- be-a-very-simple-sql-query – Strawberry

答えて

0

たぶん、このような何か:

SELECT YEARWEEK(`date_added`) AS week_name, 
    SUM(IF(profit > 0, profit, 0)) as profit, 
    SUM(IF(profit < 0, profit, 0)) as loss 
FROM wpdw_complete_bets 
WHERE user_id = 1 
GROUP BY week_name 
ORDER BY week_name ASC 

EDIT: だからあなたは、ユーザーが登録以来の週の数をしたいですか?

SELECT TIMESTAMPDIFF(WEEK, ?user_create_date, `date_added`) AS week_name, 
    SUM(IF(profit > 0, profit, 0)) as profit, 
    SUM(IF(profit < 0, profit, 0)) as loss 
FROM wpdw_complete_bets 
WHERE user_id = 1 
GROUP BY week_name 
ORDER BY week_name ASC 
+0

あなたの答えは本当にありがとうございますが、週の数は1年になりますが、私は登録ユーザーの週番号を欲しがっています.1週間後のユーザーは利益として100を得、2回目のユーザーは再登録ユーザーから120を得ます。あなたが私の懸念を理解していることを願っています。 –

関連する問題