mysql - 使用过程建表

标签 mysql

我正在尝试创建一个过程,返回一个包含我数据库的一些信息的表,它根据在酒店使用每种类型信用卡的客户数量列出了酒店的编号

请记住,有超过 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;

最佳答案

我假设您有一张表,看起来有点像这样:

|hotelId|cardType|etc...

我会选择:

Select hotelId, cardType, count(*)
from myTable
group by hotelId, cardType

我测试过here使用以下 SQL:

SELECT country, city, count(*)
from customers
group by country, city
ORDER BY Country;

关于mysql - 使用过程建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19227523/

相关文章:

MySQL 错误 2002 (HY000) : Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

mysql - 将多个值输入关系数据库字段

php - 非常简单 RE : New Lines in PHP when sourcing mySQL in a form

mysql - 在 1 个查询中计算 2 个值

MYSQL 在 INSERT 时获取自动增量/mysql_insert_id()

mysql - 多个更新或更新...在哪里

mysql - Redis位图数据转Mysql——ETL策略

php - 如何加速Mysql和PHP?

php - 在 Laravel (Mysql) 中选择上次访问日期

java - 在 Web 应用程序中保留用户更改日志