Click here to Skip to main content
15,880,405 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
my table is like this: SPJ table(snumber, pnumber, jnumber, qty)

my string varchar outputs null when I concat it to itself.

what I want is parenthesized the pairs of ( supplier-number, total-qty-supplied) for all supplier who supply parts.

this is what I have:
SQL
DELIMITER $$
    CREATE DEFINER=`root`@`localhost` PROCEDURE `supplierInfo`(OUT `string` VARCHAR(300))
    BEGIN
    DECLARE s VARCHAR(40);
    DECLARE number VARCHAR(4);
    DECLARE qty  int(6);
    DECLARE FOUND BOOLEAN DEFAULT TRUE;

    DECLARE cur CURSOR FOR
    SELECT DISTINCT spj.snumber, SUM(spj.qty)
    FROM spj
    GROUP BY spj.snumber;
    DECLARE CONTINUE HANDLER FOR NOT FOUND
    SET FOUND = false;
    OPEN cur; 
    FETCH cur INTO number, qty;
    WHILE(FOUND)DO
    SET string = CONCAT(string,'(',number,' ',qty,')');
    FETCH cur INTO number, qty;
    END WHILE;
    CLOSE cur;
    END$$
    DELIMITER ;


What I have tried:

SET string = CONCAT(string,'(',number,' ',qty,')');
SQL

Posted
Updated 4-Dec-17 18:35pm
Comments
Santosh kumar Pithani 5-Dec-17 0:28am    
why 'String' is used in concat? Use "set string=(select concat('(',number,',',qty,')') );"

SELECT CONCAT('stringName','(number',',qty)') as Name;

output
------
Name
----
stringName(number,qty)
 
Share this answer
 
Comments
Member 13558298 5-Dec-17 0:37am    
thanks you are a life saver it worked like a charm!
Santosh kumar Pithani 5-Dec-17 0:48am    
Welcome !
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `supplierInfo`()
BEGIN
DECLARE number VARCHAR(4);
DECLARE qty  int(6);
DECLARE FOUND BOOLEAN DEFAULT TRUE;

DECLARE cur CURSOR FOR
SELECT DISTINCT spj.snumber, SUM(spj.qty)
FROM spj
GROUP BY spj.snumber;

DECLARE CONTINUE HANDLER FOR NOT FOUND
SET FOUND = false;

OPEN cur; 
FETCH cur INTO number, qty;

WHILE(FOUND)DO
SELECT CONCAT('(Supplier = ',number,', total Part qty = ',qty,')') AS snumber_And_total_Qty;
FETCH cur INTO number, qty;
END WHILE;

CLOSE cur;
END$$
DELIMITER ;
 
Share this answer
 
Comments
Santosh kumar Pithani 5-Dec-17 1:08am    
Good!

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900