0

データベースの一部の情報を含むテーブルを返すプロシージャを作成しようとしています。ホテルで各タイプのクレジットカードを使用したクライアントの数によってホテルの数をリストします

50以上のホテルと3種類のクレジットカードがあることを念頭に置いて、データを実行して表にリストする手順が必要です

DELIMITER //    
DROP PROCEDURE IF EXISTS `testing` //
CREATE PROCEDURE `testing`(OUT param1 VARCHAR(40))

BEGIN

DECLARE id_cnpjEstabelecimento VARCHAR(40);
DECLARE id_redeCartão VARCHAR(255);

SELECT (cnpjEstabelecimento) 
FROM fpcsmovatlantica201308tst04;
SET id_cnpjEstabelecimento := cnpjEstabelecimento;

SELECT (id_redeCartão) 
FROM fpcsmovatlantica201308tst04;
SET id_redeCartão := id_redeCartão;

SELECT count(*)
FROM fpcsmovatlantica201308tst04;
WHERE redeCartão like 'id_redeCartão%';
AND cnpjEstabelecimento like 'id_cnpjEstabelecimento%';

END //
DELIMITER ;

選択の例

 SELECT count(*)
 FROM fpcsmovatlantica201308tst04
 WHERE redeCartão like 'Cielo%'
 AND cnpjEstabelecimento like '02223966000466%'

cnpjEstabelecimento は 100 以上の複数の値を取得したため、すべての選択を行うことは避けられません。

私はそれを作るために手順を使用する必要さえありません、最終的な結果は

SELECT cnpjEstabelecimento, redeCartão, count(*)
FROM fpcsmovatlantica201308tst04
WHERE redeCartão like 'Cielo%'
GROUP BY cnpjEstabelecimento,redeCartão like 'Cielo%'
ORDER BY cnpjEstabelecimento ASC;
4

1 に答える 1