Member 13558298 Ответов: 2

Как я могу связать() строку с самой собой с помощью курсора в mysql


моя таблица выглядит так: SPJ table(snumber, pnumber, jnumber, qty)

моя строка varchar выводит null, когда я соединяю ее с самой собой.

то, что я хочу,-это заключенные в скобки пары ( поставщик-номер, общее количество поставляемых деталей) для всех поставщиков, поставляющих детали.

вот что у меня есть:
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 ;


Что я уже пробовал:

Комплект струн = функция concat(строка,'(',номер' ',количество')');

		    
                    

Santosh kumar Pithani

почему этой строки используется функция concat? Используйте "установить строку=(выбор метода concat ('(', "число",',', количество')') );"

2 Ответов

Рейтинг:
2

Member 13558298

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 ;


Santosh kumar Pithani

Хорошо!

Рейтинг:
15

Santosh kumar Pithani

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

output
------
Name
----
stringName(number,qty)


Member 13558298

спасибо, что ты спасатель жизни, это сработало как заклинание!

Santosh kumar Pithani

Добро пожаловать !