-
Total de itens
3.089 -
Registro em
-
Última visita
Tudo que Denis Courcy postou
-
Bom dia. Por favor poste o resultado do select abaixo: EXPLAIN SELECT cli.CLICOD, cli.CLINOM, cli.CLICPF, vda.CODVEN,vda.DATVEN, vda.NUMVEN, vda.CLIVEN, vda.QTDVEN, vda.VALVEN, vda.ESPVEN, vda.TOTVEN, vda.MARCADO, vda.CUPOM, IF(vda.CUPOM!='S' AND vda.MARCADO!='S',vda.QTDVEN,0) AS VENDAS_OUTRAS, IF(vda.CUPOM='S', vda.QTDVEN,0) AS VENDAS_CUPOM, IF(vda.MARCADO='S',vda.QTDVEN,0) AS VENDAS_NF, tv.CODVENDA, tv.ENTRADA_SAIDA FROM vendas AS vda LEFT JOIN clientes AS cli ON cli.CLICOD = vda.CLIVEN LEFT JOIN tvenda AS tv ON vda.NUMVEN = tv.CODVENDA WHERE vda.CODVEN = 1 AND vda.CODVEN !=0 order by vda.DATVEN DESC
-
Crie uma procedure e passe os parâmetros necessários. DELIMITER $$ USE `meuBancoDeDados`$$ DROP PROCEDURE IF EXISTS `minhaProcedure`$$ CREATE PROCEDURE `minhaProcedure`(IN DataEmissao DATE) BEGIN SELECT DATA_EMIS, NRNF, TOTAL_VENDA FROM nf WHERE DATA_EMIS = DataEmissao; END$$ DELIMITER ;
-
Basicamente é isso aqui: TRIGGER `tguDelete` AFTER DELETE ON `locacoes` FOR EACH ROW BEGIN DECLARE qtd SMALLINT UNSIGNED DEFAULT 0; SET qtd = (SELECT COUNT(id_locacao) FROM locacoes WHERE codigo_filme = OLD.codigo_filme); IF qtd = 1 THEN UPDATE filmes SET situacao = 'Disponivel' WHERE id_locacao = OLD.id_locacao; END IF; END;
-
Na linha 1 remova o ponto e virgula; Na linha 6 coloque virgula após auto_increment.
-
Movendo para PHP
-
faça backup antes de fazer qualquer alteração. Não nos responsabilizamos por erros em seus dados. A instrução abaixo deverá resolver seu problema: update problemas p inner join prob_tipo_0 t on p. problema =t. probt0_desc SET p.problema = t. probt0_cod
-
Crie uma coluna saldo e atualize esta coluna com um trigger. Assim, a cada lançamento o sistema terá, automaticamente, o saldo atualizado.
-
O símbolo % deve ser representado por \%
-
mysqli_query() Banco de dados criado, aberto. Porém tabelas não são detectadas.
pergunta respondeu ao AryAFilho de Denis Courcy em MySQL
Você já verificou a integridade das tabelas com o phpadmin ou outro sgbd para mysql? -
Relatório demora demais para ser gerado
pergunta respondeu ao Felipe Schneider de Denis Courcy em MySQL
Verifique se a tabela empresas possui indices para os campos id e razão (um índice para cada campo) tabela clientes_old possui indices para campos id_emp,opcao,ano,mes,dia (um indice para todos estes campos) Se a tabela clientes_old for muito grande, verifique, também, se há indice para o campo nome tabela clientes_old possui indices para campos id_emp,setor,exame_clinico,opcao,ano,mes,dia (um indice para todos estes campos) tabela empresas_setores id,setor,funcao (um indice para todos estes campos) Rode cada um dos selects, dentro do phpadmin ou outro sgbd, com a palavra EXPLAIN antes da palavra SELECT e poste o resultado se as ações acima não melhorarem o tempo de execução de seu relatório. -
Boa tarde Ricardo, Não há relacionamentos explícitos quando engine é MyISAM. O engine utilizado para manter integridade referencial é o InnoDB. O banco information_schema é virtual, e proprietário do MySQL. É montado quando do start do MySQL. As informações de relacionamentos de todos os bancos de seu MySQL estão na tabela TABLE_CONSTRAINTS do banco information_schema.
-
não somar registros com a mesma Foreign Key
pergunta respondeu ao lailaaguiar de Denis Courcy em MySQL
Bom dia, Lailaaguiar Não entendi esta parte de seu questionamento. Poderia explicar melhor, por favor? A que tabela pertence o campo lavtotalfun? -
Por que você não desenvolve todo o código de gravação em stored procedure?
-
Filtrar dados duplicados com parâmetros diferentes
pergunta respondeu ao josersbf de Denis Courcy em MySQL
Faça assim: SELECT ip, COUNT(DISTINCT porta) from nomeDaMinhaTabela GROUP BY ip HAVING COUNT(DISTINCT porta) > 1 -
Sintaxe Store Procedure - Diferença MySQL x Firebird
pergunta respondeu ao Matheus Peluchi de Denis Courcy em MySQL
Acrescente mais um comando que eu esqueci de colocar. Após a linha do END WHILE; Coloque CLOSE cur1; para fechar o cursor. -
Sintaxe Store Procedure - Diferença MySQL x Firebird
pergunta respondeu ao Matheus Peluchi de Denis Courcy em MySQL
Desculpe, é END WHILE. -
Sintaxe Store Procedure - Diferença MySQL x Firebird
pergunta respondeu ao Matheus Peluchi de Denis Courcy em MySQL
Basicamente é isso: DELIMITER $$ CREATE PROCEDURE `nomedobanco`.`ATUALIZA_ESTOQUE_ENTRADA`(IN RCODENTRADA INTEGER) BEGIN DECLARE VCODENTRADA INTEGER; DECLARE VCODOBRA INTEGER; DECLARE VCODPROD INTEGER; DECLARE VQTDE FLOAT; DECLARE VVRUNITARIO NUMERIC(15,2); DECLARE VCODCLIENTE INTEGER; DECLARE VSTATUS VARCHAR(20); DECLARE VTIPO CHAR(1); DECLARE done INT DEFAULT FALSE; DECLARE cur1 CURSOR FOR SELECT I.codentrada, I.codobra, I.codproduto, I.quantidade, I.vrunitario FROM ITENSENTRADA I WHERE I.codentrada = RCODENTRADA; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN cur1; FETCH cur1 INTO VCODENTRADA, VCODOBRA, VCODPROD, VQTDE, VVRUNITARIO; WHILE NOT done DO SET vtipo = 'E'; SELECT E.codcliente, e.status INTO vcodcliente, vstatus FROM ENTRADA e WHERE E.codentrada = rcodentrada; IF NOT (vstatus = 'ABERTA' OR vstatus = 'FINALIZADA') THEN UPDATE entrada e SET e.status = 'FINALIZADA' WHERE E.codentrada = rcodentrada; UPDATE PRODUTO P SET P.estoque = P.estoque + vqtde, P.vrunitario = vvrunitario WHERE P.codproduto = vcodprod; INSERT INTO HISTORICOCLIENTES(CODMOV, CODCLIENTE, CODPRODUTO, QTDE, CODOBRA, TIPO) VALUES (vcodentrada, vcodcliente, vcodprod, vqtde, vcodobra, vtipo); INSERT INTO HISTORICOPRODUTO (CODMOV, CODOBRA, CODCLIENTE, CODPROD, QTDE, VALOR, TIPO) VALUES (vcodentrada, vcodobra, vcodcliente, vcodprod, vqtde, vvrunitario, vtipo); END IF; FETCH cur1 INTO VCODENTRADA, VCODOBRA, VCODPROD, VQTDE, VVRUNITARIO; END DO; END$$ -
Entre como root e insira seu usuário na tabela user do banco mysql
-
apagar registro com vinculo em 3 tabelas (Resolvido)
pergunta respondeu ao FabioMachado de Denis Courcy em MySQL
Faça assim: DELETE FROM nf_detalhe WHERE nf_detalhe.nfd_nfm IN (SELECT DISTINCT nf_mestre.id FROM nf_medtre WHERE nfm_dom = 35); -
Dump em Windows e Restauração no Linux
pergunta respondeu ao Alisson Jonathan de Denis Courcy em MySQL
Sim. Use o programa Mysqldump que vem na instalação do Mysql. Leia a documentação para mais detalhes e poste aqui suas dúvidas. -
O uso de um relacionamento muitos para muitos com barco e balsa resolve este problema. Crie uma tabela barcoxbalsa (idBarco,idBalsa) e coloque aqui a composição que você está selecionando e você coseguirá listar usando inner join entre esta tabela e as tabelas barco e balsa.
- 1 resposta
-
- inner join
- outer join
- (e %d mais)
-
Mostra a estrutura da tabela interditado Neste caso não é trigger. É select.
-
Faça assim: CREATE TRIGGER Crypt_Decrypt before insert on interditado FOR EACH ROW begin SET NEW.nome := aes_encrypt(NEW.nome, 'MIICeQIBADANBgkqhkiG9w0BAQEFAASC'); SET NEW.cpf := aes_encrypt(NEW.cpf, 'MIICeQIBADANBgkqhkiG9w0BAQEFAASC'); SET NEW.nome_pai := aes_encrypt(NEW.nome_pai, 'MIICeQIBADANBgkqhkiG9w0BAQEFAASC'); SET NEW.nome_mae := aes_encrypt(NEW.nome_mae, 'MIICeQIBADANBgkqhkiG9w0BAQEFAASC'); end; Crie outro trigger para before update, igual a este.
-
O trigger de insert não tem valores antigos (OLD) O trigger de delete não tem valores novos (NEW) O que você precisa é de um trigger que ocorra antes de um update. (before update) Onde voce poderá comparar valores novos e antigos. Deverá ser BEFORE pois a comparação deve ocorrer antes da gravação. Depois disso não haverá valores NEW. DELIMITER $$ CREATE TRIGGER `nomedobanco`.`meutriggerdeupdate` BEFORE UPDATE ON `meubanco`.`minhatabela` FOR EACH ROW BEGIN IF NEW.natureza <> OLD.natureza THEN grave aqui END IF; END$$ DELIMITER ;
-
Tab_Comentario deverá ter uma chave estrangeira para tab_Filme. Estude sobre relacionamento "um para muitos" e você verá que é fácil manter somente duas abelas para esta finalidade.