Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एक MySQL संग्रहीत प्रक्रिया में लूप के अंदर कथन का चयन करें

इसे आजमाएं:

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. MySQL:एक यादृच्छिक पंक्ति या एकाधिक यादृच्छिक पंक्तियों को कैसे पुनर्प्राप्त करें?

  2. डेटाटाइम का समर्थन करने के लिए पायथन JSON एन्कोडर?

  3. तालिका को क्रैश के रूप में चिह्नित किया गया है और इसकी मरम्मत की जानी चाहिए

  4. किसी स्तंभ के अंतिम तीन वर्णों द्वारा क्रमित करने की क्वेरी

  5. mysql एक्सटेंशन को हटा दिया गया है और भविष्य में हटा दिया जाएगा:इसके बजाय mysqli या PDO का उपयोग करें