Advertisement
Guest User

QUERY

a guest
Aug 14th, 2014
434
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.56 KB | None | 0 0
  1. SELECT
  2.   `t`.`id`,
  3.   `t`.`offer_id` AS `Offer_ID`,
  4.  
  5.   IFNULL(SUM(OtherTransactions.sum_hold), 0) AS sum_hold,
  6.   IFNULL(SUM(OtherTransactions.sum_unhold), 0) AS sum_unhold,
  7.   IFNULL(SUM(OtherTransactions.sum_chargeback), 0) AS sum_chargeback,
  8.   IFNULL(SUM(OtherTransactions.sum_bonus), 0) AS sum_bonus,
  9.  
  10.   SUM(t.amount) AS sum_payout
  11.  
  12. FROM `payments_transactions` `t`
  13.   LEFT OUTER JOIN (
  14.     /* В этой же таблице хранятся другие транзакции типов Hold, UnHold, Chargeback, Bonus */
  15.     SELECT id_daily_earning,
  16.       -- выбираем суммы по типу
  17.       SUM(IF(OtherTransactions.TYPE = 'Hold', OtherTransactions.amount, 0)) AS sum_hold,
  18.       SUM(IF(OtherTransactions.TYPE = 'UnHold', OtherTransactions.amount, 0)) AS sum_unhold,
  19.       SUM(IF(OtherTransactions.TYPE = 'Chargeback', OtherTransactions.amount, 0)) AS sum_chargeback,      
  20.       SUM(IF(OtherTransactions.TYPE = 'Bonus', OtherTransactions.amount, 0)) AS sum_bonus
  21.      
  22.     FROM `payments_transactions` OtherTransactions
  23.  
  24.     WHERE
  25.     (OtherTransactions.TYPE = 'Hold'
  26.       OR OtherTransactions.TYPE = 'UnHold'
  27.       OR OtherTransactions.TYPE = 'Chargeback'
  28.       OR OtherTransactions.TYPE = 'Bonus')
  29.     -- группируем по полю, через которое ссылаются
  30.     GROUP BY OtherTransactions.id_daily_earning
  31.  
  32.   ) OtherTransactions
  33.   ON OtherTransactions.id_daily_earning = t.id
  34.  
  35. -- выбираем дневные заработки
  36. WHERE (t.TYPE = "Daily Earning")
  37.  
  38. GROUP BY t.offer_id
  39.  
  40. ORDER BY t.id DESC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement