2017-05-05 22 views
-2

我有兩個表,一個是「complete_bets」,另一個是「用戶」。在第一個表中,我有一個列的利潤,用戶可以輸入他們的利潤和損失一天一天,這是表截圖:得到總的個人資料周,沒有一週從用戶REGISH的

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 

但它讓我今年的一個星期,但我想盈利/虧損周明智的爲網站上的一個成員的週數。

我都想導致這樣的

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

哪裏no_of_week_user_register就像第一週用戶註冊後得到100在第二週輪廓,他得到120和第4周的形式他們的註冊,他得到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 

編輯: 所以,你要因爲用戶註冊的週數?

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

真的非常感謝您的回答,但它會給出一年的週數,但我希望用戶註冊的週數,就像註冊用戶第一週獲得100作爲利潤,第二週從註冊用戶獲得120這樣的profilt。 。我希望你現在明白我的擔心,用戶在usres表中的回收日期 –

相關問題