2017-07-17 17 views
0

下記の私のTOURテーブルです:月額のMySQL:毎週、毎月SUM

  • 週合計
  • 合計:私は、次のように取得したい

    tour_id | tour_date | amount 
        ------------------------------ 
        ABC  | 2016-03-07 | 100 
        ABC  | 2016-03-15 | 200 
        DEF  | 2016-03-07 | 300 
        DEF  | 2016-03-15 | 100 
        GHI  | 2016-03-07 | 30 
    

    。この最終データはこのように見なければならない

tour_id| weekly sum. | monthly sum. 
    -------------------------------- 
    ABC | 100   | 300  
    DEF | 300   | 400 
    GHI | 30   | 30 
+1

「現在の月合計」と「月合計額」の違いは何ですか? –

+1

_Which_月は現在の月ですか? 1年に12ヶ月があります。 –

+0

あなたは見なければなりませんか? 53があります... – Frank

答えて

0
SELECT 
    tour_id, WEEKLY, MONTHLY 
FROM 
    TOUR T1 
     INNER JOIN 
    (SELECT 
     tour_id, SUM(amount) WEEKLY 
    FROM 
     TOUR 
    GROUP BY tour_id , WEEK(tour_date)) WEEK ON WEEK.tour_id = T1.tour_id 
     INNER JOIN 
    (SELECT 
     tour_id, SUM(amount) MONTHLY 
    FROM 
     TOUR 
    GROUP BY tour_id , DATE_FORMAT(tour_date, '%m')) MONTH ON WEEK.tour_id = MONTH.tour_id 

は、クエリの上に試してみてください。

希望すると、これが役立ちます。

0
SELECT WEEK.* 
    , MONTH.MONTHLY 
FROM (SELECT tour_id 
    , WEEK(tour_date) week 
    , YEAR(tour_date) year 
    , SUM(amount) WEEKLY 
    FROM TOUR 
    GROUP BY tour_id , WEEK(tour_date), YEAR(tour_date)) WEEK 
INNER JOIN (SELECT tour_id 
       , YEAR(tour_date) year 
       , MONTH(tour_date) month 
       , SUM(amount) MONTHLY 
      FROM TOUR 
      GROUP BY tour_id , MONTH(tour_date), YEAR(tour_date)) MONTH ON WEEK.tour_id = MONTH.tour_id AND WEEK.year = MONTH.year 
関連する問題