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

Chọn câu lệnh bên trong một vòng lặp trong Thủ tục được lưu trữ Mysql

Hãy thử điều này:

DELIMITER $$

DROP PROCEDURE IF EXISTS `AbsentReportproc`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `AbsentReportproc`(IN _fromdate DATETIME, IN _todate DATETIME)
BEGIN 
    CREATE TEMPORARY TABLE daterange (dte DATE); 

    SET @counter := -1;
    WHILE (@counter < DATEDIFF(DATE(_todate), DATE(_fromdate))) DO 
        INSERT daterange VALUES (DATE_ADD(_fromdate, INTERVAL @counter:[email protected] + 1 DAY));
    END WHILE;

    SELECT tp.cardno, tp.EMPCODE, tp.DEPARTMENT, GROUP_CONCAT(d.dte) Absentddate, COUNT(tp.cardno) Totalnoofabsentdates
    FROM test_prefixmaster tp JOIN daterange d 
    LEFT JOIN test_prefixtransactions tpt ON tp.cardno = tpt.CARDNO AND DATE(S_DateTime) = d.dte
    WHERE tpt.CARDNO IS NULL 
    GROUP BY tp.cardno;

    DROP TABLE daterange;
END$$

DELIMITER ;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao các tham chiếu đến wp_postmeta quá chậm?

  2. Không có lỗi nào được chọn Cơ sở dữ liệu trong PHP với MySQLi

  3. Truy vấn SQL vị trí địa lý không tìm thấy vị trí chính xác

  4. SQLException lạ:Không tìm thấy cột

  5. sử dụng dấu gạch ngang (-) trong tên bảng mysql