Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Sử dụng nhóm theo truy vấn con bên trong

Bạn có thể sử dụng truy vấn dưới đây cho tập kết quả mong đợi của mình

SELECT *,
COALESCE(
    (SELECT SUM(pt.rupees) FROM (
        SELECT  MONTH(`date`) `month`,
        MAX(id) id,
        SUM(rupees) rupees
        FROM house_details 
        GROUP BY `month`,subincome
    ) pt 
    WHERE CASE WHEN pt.month = t1.month THEN pt.id < t1.id ELSE pt.month < t1.month END 
), 0) AS progressive_total,
(SELECT SUM(rupees) FROM(
        SELECT  MONTH(`date`) `month`,
        MAX(id) id,
        SUM(rupees) rupees
        FROM house_details 
        GROUP BY `month`,subincome
    ) cs 
    WHERE  CASE WHEN cs.month = t1.month THEN cs.id <= t1.id ELSE cs.month <= t1.month END 
) AS cumulative_sum 
FROM (
    SELECT MONTHNAME(t.date) AS `monthname`,
    MAX(id) id,
    MONTH(t.date) `month`,
    YEAR(t.date) AS `year`,
    GROUP_CONCAT(t.income) income,
    t.subincome,
    GROUP_CONCAT(t.ssubincome) ssubincome,
    SUM(rupees) AS amount,
    GROUP_CONCAT(receipt_id) AS receipt_ids 
    FROM house_details t 
    WHERE YEAR(t.date) = YEAR(CURRENT_DATE()) 
    GROUP BY `monthname`,`month`, t.subincome
    ORDER BY `month`
) t1

Bản trình diễn



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi câu lệnh hợp nhất thành MYSQL bằng cách sử dụng khóa trùng lặp

  2. nối các bảng và hiển thị kết quả [Laravel 5]

  3. Làm cách nào để buộc đăng xuất khỏi tất cả người dùng đối với một trang web?

  4. xóa dữ liệu trùng lặp mysql

  5. Sử dụng LIKE trong bindParam cho một truy vấn MySQL PDO