これを使用すると、transactionIDに基づくテーブルから合計レコードをフェッチできないため、group_concatに関連する問題に直面しています。これがストアドプロシージャコードです。これでは、strSplitと呼ばれる分割関数を使用しています。
BEGIN
DECLARE iCount int;
DECLARE i int;
DECLARE txn VARCHAR(65000);
DECLARE txId VARCHAR(17);
CREATE TEMPORARY TABLE report_transaction (client_id INT NOT NULL AUTO_INCREMENT, productName VARCHAR(200), itxnId VARCHAR(100),PRIMARY KEY(client_id));
select count(distinct(tt.TxnId)) into iCount from tbl_transaction tt;
SELECT group_concat(distinct((tt.TxnId)) separator ', ') product into txn from tbl_transaction tt;
SET i=1;
WHILE i<iCount+1 DO
select strSplit(txn, ',', i) into txId;
SELECT RTRIM(LTRIM(txId));
INSERT INTO report_transaction(productName,itxnId) select group_concat((tt.ProductName) separator ',') products,tt.TxnId from tbl_transaction tt where tt.TxnId= txId;
SET i = i + 1;
END WHILE;
SELECT * FROM report_transaction;
drop table report_transaction;
END
テーブルレコードのような結果が必要ですが、最初のレコードのみが表示され、他のフィールドはnullになります。