Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa Dia pessoal
Preciso de uma ajuda
Eu tenho 3 tabelas (tab1, tab2 e tba3) em que preciso contar o numero de registros (reg1, reg2 e reg3) de cada uma delas, e estes registros devem ser armazenados em uma outra tabela (TabInfo)
A contagem pode ser feito com o SELECT COUNT(*), mas o meu problema é adicionar estes registros na nova tabela (TabInfo).
TabInfo
___________________________
campo1 campo2 campo3
___________________________
reg1 reg2 reg3
Muito obrigado pessoal>
18 minutos atrás, kim.y disse:
Você pode fazer da seguinte forma:
INSERT INTO TabInfo (campo1 , campo2 , campo3 ) VALUES (
(SELECT count(reg1) FROM tab1),
(SELECT count(reg2) FROM tab1),
(SELECT count(reg3) FROM tab1))
Ou criar uma procedure:
DELIMITER $$
CREATE PROCEDURE sp_teste(IN tab_name VARCHAR(250))
BEGIN
SET @GetName = CONCAT('
INSERT INTO TabInfo (campo1 , campo2 , campo3 ) VALUES (
(SELECT count(reg1) FROM ',tab_name, '),
(SELECT count(reg2) FROM ',tab_name, '),
(SELECT count(reg3) FROM ',tab_name, ') )');
PREPARE stmt FROM @GetName;
EXECUTE stmt;DELIMITER ;
para testar a procedure:
call sp_teste('tab1');
Muito obrigado Kim.
Resolvido com a sua primeira proposta. Não precisei criar um procedure.>
2 minutos atrás, Marcelo Pereira da Costa disse:
Muito obrigado Kim.
Resolvido com a sua primeira proposta. Não precisei criar um procedure.
Kim, tem como você me ajudar em mais uma dúvida?
Eu preciso armazenar o numero de repetições de um registro (que tem 2 campos) de uma determinada tabela (TabelaA), em um campo (Num_rep) de uma outra tabela (TabelaB).
Os campos da TabelaA são CPF e MAT.
A forma de determinar o numero de repetições é :
select CPF, MAT, count(*)
from TabelaA
group by CPF, MAT
having count(*) > 1
Mas como faço para colocar este numero de repetições em um campo (Num_rep) na TabelaB é que estou tendo dificuldade, agradeceria a ajuda.>
4 minutos atrás, Marcelo Pereira da Costa disse:
Kim, tem como você me ajudar em mais uma dúvida?
Eu preciso armazenar o numero de repetições de um registro (que tem 2 campos) de uma determinada tabela (TabelaA), em um campo (Num_rep) de uma outra tabela (TabelaB).
Os campos da TabelaA são CPF e MAT.
A forma de determinar o numero de repetições é :
select CPF, MAT, count(*)
from TabelaA
group by CPF, MAT
having count(*) > 1
Mas como faço para colocar este numero de repetições em um campo (Num_rep) na TabelaB é que estou tendo dificuldade, agradeceria a ajuda.
E este campo (Num_rep) esta em um determinado registro.
Logo, teria que colocar em um registro em que um outro campo (Reg) tem o valor 10.
Eu tentei
UPDATE TabelaB
SET Num_rep= (select CPF, MAT, count(*) from TabelaA group by CPF, MAT having count(*) > 1)
WHERE Reg='10';>
1 minuto atrás, Marcelo Pereira da Costa disse:
E este campo (Num_rep) esta em um determinado registro.
Logo, teria que colocar em um registro em que um outro campo (Reg) tem o valor 10.
Eu tentei
UPDATE TabelaB
SET **Num_rep**= (select** CPF, MAT, count(*) **from TabelaA group by CPF, MAT having count(*) > 1)
WHERE Reg='10';
O problema é que você está setando 1 valor e no seu select está resultando em 3.
Isso é exercício de faculdade? Qualquer coisa te ajudo por MP e te envio algum material que eu tenho aqui.>
1 minuto atrás, kim.y disse:
O problema é que você está setando 1 valor e no seu select está resultando em 3.
Isso é exercício de faculdade? Qualquer coisa te ajudo por MP e te envio algum material que eu tenho aqui.
Não é trabalho de faculdade não.
É que sou novato nesta área e me pediram para colocar em uma tabela (tabela B) em um campo (Num_rep) de um determinado registro .(Reg, em que o valor é 10).
E que este dado a ser colocado seria o numero de repetições de registros (este registro só tem estes campos: CPF e MAT), mas de uma outra tabela (Tabela A).
Não sei se fui claro nesta duvida.
Você pode fazer da seguinte forma:
DELIMITER $$
CREATE PROCEDURE sp_teste(IN tab_name VARCHAR(250))
BEGIN
SET @GetName = CONCAT('
END $$