Получить данные по группам по дате - PullRequest
0 голосов
/ 04 октября 2018

Вот моя таблица

enter image description here

с типом поля, означающим 1 для дохода, а 2 для расходов

сейчасНапример, в таблице есть две транзакции, сделанные на 2-10-2018, поэтому я хочу, чтобы данные выглядели следующим образом:

Expected Output

id   created_date   total_amount
1       1-10-18     10
2       2-10-18     20(It calculates all only income transaction made on 2nd date)
3       3-10-18     10
and so on...

будет возвращено новое поле, содержащее только незаполненную транзакцию, сделанную в день perticulur

То, что я пробовал, это

 SELECT * FROM `transaction`WHERE type = 1 ORDER BY created_date ASC
 UNION
 SELECT()


//But it wont work
SELECT created_date,amount,status FROM
    (
        SELECT COUNT(amount) AS totalTrans FROM transaction WHERE created_date = created_date
    ) x
 transaction

Вы также можете посмотреть схему ЗДЕСЬ http://sqlfiddle.com/#!9/6983b9

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Вы просто хотите WHERE предложение?

SELECT t.created_date, SUM(amount) as total_amount
FROM transaction t
WHERE type = 2
GROUP BY t.created_date
ORDER BY created_date ASC ;
0 голосов
/ 04 октября 2018
  • Вы можете Count() общее количество транзакций расходов, используя условную функцию If(), для группы created_date.
  • Точно так же вы можете Sum() сумму расходов, совершенных с использованием If(), на created_date.

Попробуйте следующее:

SELECT 
  `created_date`, 
  SUM(IF (`type` = 2, `amount`, 0)) AS total_expense_amount, 
  COUNT(IF (`type` = 2, `id`, NULL)) AS expense_count  
FROM 
  `transaction` 
GROUP BY `created_date` 
ORDER BY `created_date` ASC 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...