2017-05-19 3 views
-2

ながら:合計数()の私はMySQLのテーブルの上にこれを持ってPHP

オープン= 2017年5月19日

 
user | open | date 
--------------------------------- 
User1 |  1  | 2017-05-19 
User2 |  1  | 2017-05-19 
User3 |  1  | 2017-05-19 
User4 |  1  | 2017-05-19 
User1 |  3  | 2017-05-18 
User2 |  5  | 2017-05-18 
User4 |  20  | 2017-05-17 
User1 |  2  | 2017-05-17 
User2 |  7  | 2017-05-17 

私は結果を作るために、検索データmysqlの中

open2 = 2017年5月18日

のopen3 = 2017年5月17日

 
user | open | open2 | open3 
--------------------------------------------- 
User1 |  1  |  3  |  2  
User2 |  1  |  5  |  7 
User3 |  1  |  0  |  0 
User4 |  1  |  0  |  20 

あなたは考えがある???

ユーザーごとにグループ化していますが、問題が発生した後に!!!

ありがとうございました。

答えて

1

それは私が推測する元のテーブルから列「オープン」、ではない数であるべきとき

select user, 
     ifnull(case when date = '2017-05-19' then open end , 0)as open, 
     ifnull(case when date = '2017-05-18' then open end, 0) as open2, 
     ifnull(case when date = '2017-05-17' then open end,0) as open3, 
    from my_table 
+0

あなたはケースを使用することができます。 – dev8080

+0

@ dev8080正解udpated – scaisEdge

0
SELECT user, 
SUM(IF(date='2017-05-19',open,0)) AS open1, 
SUM(IF(date='2017-05-18',open,0)) AS open2, 
SUM(IF(date='2017-05-17',open,0)) AS open3 
FROM SomeTableName 
GROUP BY user; 
+1

「〜から」を忘れないでください;-) –

+0

非常にありがとう、偉大な、私はほとんどそこにいたが、私は正しく要求を公式化していない! –

関連する問題