-
Total de itens
3.089 -
Registro em
-
Última visita
Tudo que Denis Courcy postou
-
Corrija para: SELECT CODPRO, NOMPRO, COMPRADO, VENDIDO, (COMPRADO - VENDIDO) AS ESTOQUE FROM (SELECT prd.CODPRO, prd.NOMPRO, SUM(IF(comp.QTDE_COMPRADA IS NULL, 0, comp.QTDE_COMPRADA)) AS COMPRADO, SUM(IF(vds.QTDVEN IS NULL, 0, vds.QTDVEN)) AS VENDIDO FROM PRODUTOS prd LEFT JOIN COMPRAS comp ON comp.COD_PRODUTO = prd.CODPRO LEFT JOIN VENDAS vds ON vds.CODVEN = prd.CODPRO GROUP BY prd.CODPRO ) e;
-
Executar select de ultimimo registro utiizando "IF" (condição se e somente se).
pergunta respondeu ao Gerson Silva de Denis Courcy em MySQL
Tente assim: SELCT MAX(numero_linha) FROM relacao_atividade GROUP BY id_relatorio HAVING id_status = '1' AND (resp_1 = '1' OR resp_2 = '1' OR resp_3 = '1' OR resp_4 = '1') O filtro na cláusula HAVING é acionado APÓS o processamento do GROUP BY. O filtro na cláusula WHERE é acionado ANTES do processamento do GROUP BY. -
Variável em consulta com parametro usando IN no where
pergunta respondeu ao Mackaulim de Denis Courcy em MySQL
Boa noite. Você pode criar esta procedure DELIMITER $$ CREATE PROCEDURE `bd`.`exemplo`(IN variavel VARCHAR(100)) BEGIN SET @preparable_stmt = CONCAT("SELECT max(aging_liberacao) as aging_lib FROM bd.gd_ob WHERE projeto = '00003' AND mrp IN(", variavel, ")"); PREPARE stmt FROM @preparable_stmt; EXECUTE stmt; -- DEALLOCATE PREPARE stmt; END$$ DELIMITER ; e executá-la assim: CALL exemplo('"O08",'"OM2"'); -
Não. Faça assim: ALTER TABLE turma ADD UNIQUE KEY nomeDoIndice (idTurma, Horainicio, Curso_idCurso); Este índice impedirá que haja a duplicidade indesejada.
-
O MySQL não permite este tipo de validação. A solução que adotei em meus sistemas foi realizar toda e qualquer gravação através de procedures, que podem retornar um result set de um select. Veja abaixo um exemplo: DELIMITER $$ USE `meudatabase`$$ DROP PROCEDURE IF EXISTS `exemplo_crud`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `exemplo_crud`(IN Acao CHAR(1), IN pidExemplo INTEGER, IN pnmExemplo VARCHAR(50), IN ptxExemplo DOUBLE(6,3), IN pvlMinimo DOUBLE(8,2), IN pndExemplo CHAR(1), IN pidDominioSituacao INTEGER) BEGIN DECLARE msg VARCHAR(1000) DEFAULT "sem mensagem"; DECLARE excecao SMALLINT DEFAULT ; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET excecao = 1; IF pnmExemplo = "" OR (Acao <> "I" AND pidExemplo = ) THEN SET msg = "Erro na passagem de parametros"; ELSE START TRANSACTION; /*Inclusao */ IF Acao = "I" THEN INSERT INTO exemplo(nmExemplo, txExemplo, vlMinimo, ndExemplo, idDominioSituacao) VALUES (pnmExemplo, ptxExemplo, pvlMinimo, pndExemplo, pidDominioSituacao); IF excecao = 1 THEN SET msg = "MySQL: Erro ao inserir na tabela de exemplo"; ROLLBACK; END IF; END IF; IF excecao <> 1 THEN IF Acao <> "I" THEN SET @idExemplo = pidExemplo; END IF; /*Alteracao*/ IF Acao = "A" THEN UPDATE exemplo SET nmExemplo = pnmExemplo, txExemplo = ptxExemplo, vlMinimo = pvlMinimo, ndExemplo = pndExemplo, idDominioSituacao = pidDominioSituacao WHERE idExemplo = @idExemplo; IF excecao = 1 THEN SET msg = "MySQL: Erro ao atualizar exemplo"; ROLLBACK; END IF; END IF; END IF; /*Exclusao*/ IF excecao <> 1 THEN IF Acao = "E" THEN DELETE FROM exemplo WHERE idExemplo = @idExemplo; IF excecao = 1 THEN SET msg = "MySQL: Erro ao excluir exemplo"; ROLLBACK; END IF; END IF; END IF; /*Se tudo deu certo, então finaliza confirmando a gravacao.*/ IF excecao <> 1 THEN COMMIT; IF Acao = "I" THEN SET msg = "MySQL: Exemplo Incluido com sucesso"; ELSE IF Acao = "A" THEN SET msg = "MySQL: Exemplo Alterado com sucesso"; ELSE SET msg = "MySQL: Exemplo Excluido com sucesso"; END IF; END IF; END IF; END IF; SELECT msg AS msg; END$$ DELIMITER ;
-
Não foi possível ler a query que está na imagem. Poderia transcrevê-la(copiar e colar) aqui, por favor?
-
Segundo seu modelo, a criação de uma UNIQUE KEY, na tabela Turma, que contemple os campos idTurma, HoraInicio e Curso_IdCurso resolverá o problema.
-
Tente assim: 1 - Pare o serviço do mysql 2 - Salve os arquivos em outra pasta (lembre-se de salvar o database de serviço: mysql; os arquivos ib_logfile0, ib_logfile1 e ibdata1) e o seus databases que dependendo da versão, estão na pasta C:\Documents and Settings\All Users\MySQL\data 3 - reinstale o mysql e reinicie o serviço 4 - teste se esta funcionando. 5 - se estiver funcionando pare o serviço do mysql 6 - copie os arquivos de volta 7 - reinicie o serviço
-
(Resolvido) Retaurar a base de dados Mysql
pergunta respondeu ao FabioMachado de Denis Courcy em MySQL
No Delphi eu uso mysqldump --opt --flush-logs --triggers --port=3306 --user=root --result-file=backup.sql --databases "meuBancoDeDados" --result era uma recomendação da MySQLA/B para formação de nomes de backups em windows. (Diferente do > no linux). Para recuperação de backup eu uso o gerenciador de linha que trabalha no console do cmd em c:\ ou no diretório onde estiver meu backup, entro em mysql -u root -p no prompt mysql> eu digito source nomedomeubackup.sql digito enter e espero o termino saia com quit -
Ok. Corrija para : SELECT CODPRO, NOMPRO, COMPRADO, VENDIDO, (COMPRADO - VENDIDO) AS ESTOQUE FROM (SELECT prd.CODPRO, prd.NOMPRO, SUM(comp.QTDE_COMPRADA) AS COMPRADO, SUM(vds.QTDVEN) AS VENDIDO FROM PRODUTOS prd LEFT JOIN COMPRAS comp ON comp.COD_PRODUTO = prd.CODPRO LEFT JOIN VENDAS vds ON vds.CODVEN = prd.CODPRO GROUP BY prd.CODPRO ) e;
-
Tenta assim: SELECT CODPRO, NOMPRO, COMPRADO, VENDIDO, (COMPRADO - VENDIDO) AS ESTOQUE FROM (SELECT prd.CODPRO, prd.NOMPRO, SUM(comp.QTDE_COMPRADA) AS COMPRADO, SUM(vds.QTDVEN) AS VENDIDO FROM PRODUTOS prd LEFT JOIN COMPRAS comp ON comp.COD_PRODUTO = prd.CODPRO LEFT JOIN VENDAS vds ON vds.CODVEN = prd.CODPRO ) e; depois faremos a segunda parte
-
Faça assim: DROP INDEX nome_indice ON nome_tabela ou assim: ALTER TABLE nomeDaTabela DROP INDEX nome_indice
-
Claro que é possível. Estude "Stored Procedures" e "Prepared Statements".
-
Crie um usuário root@% e conceda a ele os direitos necessários. O @% indicará que o root está acima de qualquer IP. O melhor será você criar um usuário sistema@% para que seja acessado por seu sistema e não precise usar o root para isso.
-
(Resolvido) Query com Periodo em vários Dias
pergunta respondeu ao Raul Pereira de Denis Courcy em MySQL
Tente assim: SELECT * FROM (SELECT * FROM tbVenda WHERE venData BETWEEN "2016-01-01 06:00:00" AND "2016-01-31 23:59:59") t1 WHERE TIME(tbVenda) BETWEEN "06:00:00" AND "16:00:00"; -
sql (Resolvido) Substituição de campo em braco por valor
pergunta respondeu ao Luiz Galdino de Denis Courcy em MySQL
Faça assim: UPDATE nomeDaTabela SET nomeDoCampo = REPLACE(TRIM(nomeDoCAMPO)," ", "_"); Onde: nomeDaTabela é o nome da tabela que você deseja alterar e nomeDoCampo é o nome do campo que contem o produto. Esta alteração afetará todos os registros da tabela.- 2 respostas
-
- substituicao
- valore
-
(e %d mais)
Tags:
-
Tenta assim: SELECT tbc.codcongregacao, tbc.codigocongregacao, tbc.nomecongregacao, (SELECT SUM(mis.valormissoes) FROM tbcongregacao tbc1, tbmissoes mis WHERE tbc1.codcongregacao = '1' AND tbc1.codcongregacao = mis.codcongregacao AND mis.datamissoes BETWEEN '2016-02-01' AND '2016-02-2016') + (SELECT SUM(diz.valordizimo) FROM tbcongregacao tbc2, tbdizimo diz WHERE tbc2.codcongregacao = '1' AND tbc2.codcongregacao = diz.codcongregacao AND diz.mesdizimo BETWEEN '2016-02-01' AND '2016-02-2016') + (SELECT SUM(vot.valorvoto) FROM tbcongregacao tbc3, tabvotos vot WHERE tbc3.codcongregacao = '1' AND tbc3.codcongregacao = vot.codcongregacao AND vot.mesvoto BETWEEN '2016-02-01' AND '2016-02-2016') + (SELECT SUM(rec.valorreceita) FROM tbcongregacao tbc4, tabreceita rec WHERE tbc4.codcongregacao = '1' AND tbc4.codcongregacao = rec.codcongregacao AND rec.mesreceita BETWEEN '2016-02-01' AND '2016-02-2016') AS receitas, (SELECT SUM(des.valordespesas) FROM tbcongregacao tbc5, tbdespesas des WHERE tbc5.codcongregacao = '1' AND tbc5.codcongregacao = des.codcongregacao AND des.datadespesas BETWEEN '2016-02-01' AND '2016-02-2016') AS despesas FROM tbcongregacao tbc Existe forma mais inteligente de fazer isso. Mas seria necessário ver a estrutura e os dados para gerar.
-
Consulta 2 tabelas, mas agrupa valor de apenas uma
pergunta respondeu ao wclive de Denis Courcy em MySQL
Vamos analisar um pouco. Primeiro modifique a cláusula where da forma WHERE month(v.dtvenda) = '2' and c.sr_deleted='' para WHERE v.dtvenda BETWEEN 2026-02-01 AND 2016-02-29 and c.sr_deleted='' Vai evitar que sua consulta entre em TABLE SCAN. Segundo, para efeito de teste, inclua o campo calculado qtRegistros, conforme abaixo: SELECT v.dtvenda, c.numnven, round(sum(c.quantid*c.prcompr),2) as COMPRAS, v.totalve as VENDAS from infvenda v, COUNT(v.dtvenda) AS qtRegistros Vai trazer a quantidade de registros somados para que você possa verificar se sua consulta está fazendo realmente o que você quer. Compare os qtRegistros do dia 23 com o select abaixo: SELECT v.dtvenda, c.numnven, round(c.quantid*c.prcompr,2) as COMPRAS, v.totalve as VENDAS from infvenda v JOIN nvendas c on (v.dtvenda = c.dtvenda and v.numnven = c.numnven) WHERE v.dtvenda = '2016-02-23' and c.sr_deleted='' -
Oi Eder, Uso windows 7. baixei de http://downloads.mysql.com/archives/community/
-
Modelo Banco de dados Pessoa Física e Pessoa Jurídica
pergunta respondeu ao Angelica Flausino de Denis Courcy em MySQL
Na tabela Generalizada Clientes coloque somente os atributos que são comuns aos dois tipos de especialização que você quer e mais um atributo que informará se a especialização é Pessoa Fisica e ou Juridica. (Vou chamar de indicadorDePessoa com domínio F ou J) Exemplo: idCliente, indicadorDePessoa, Nome, Endereço(se for um só), etc. Na tabela de especialização Pessoa Fisica coloque somente os atributos que são específicos desta especialização Exemlo: idCliente(FK com relação 1:1 para Cliente), CPF, Sexo, Identidade, etc Na tabela de especialização Pessoa Jurídica coloque somente os atributos que são específicos desta especialização Exemplo: idCliente(FK com relação 1:1 para Cliente), CNPJ, Nome Fantasia, InscEstadual, Etc. Quando você criar uma compra para um cliente específico o que vai entrar é o idCliente, que será a FK para a tabela de clientes. Informe se precisar mais.- 2 respostas
-
- mysql
- pessoa física
- (e %d mais)
-
Publique, por favor, as estruturas das tabelas.
-
Esta não é uma dúvida de MySQL. É de PHP. Movendo MySQL-->>PHP
-
Está informando não existe o campo CODIGO na tabela Qusuario em seu banco de dados.
-
Esta sintaxe está errada. convert (varchar (8), @data, 112) Verifique o manual do mysql de sua versão para achar uma função mais apropriada.
-
Faça o último. Os primeiros são para você saber como cheguei lá: -- listar datas que possuem mais de um evento por data SELECT DATE(e2.setup) AS `dtEvent` FROM eventassist.event e2 GROUP BY `dtEvent` HAVING COUNT(e2.event_id) > 1; -- Listar a informação dos eventos SELECT e1.setup, e1.event_id, e1.setup, e1.teardown, e1.event_type_id FROM eventassist.event e1; -- Listando o que voce quer: SELECT e1.setup, e1.event_id, e1.setup, e1.teardown, e1.event_type_id FROM eventassist.event e1 WHERE DATE(e1.setup) IN (SELECT DATE(e2.setup) AS `dtEvent` FROM eventassist.event e2 GROUP BY `dtEvent` HAVING COUNT(e2.event_id) > 1);