-
Total de itens
3.089 -
Registro em
-
Última visita
Tudo que Denis Courcy postou
-
Faça assim: SELECT destino FROM Tabela_1 t1 LEFT JOIN Tabela_2 t2 ON t2.telefone = t1.destino WHERE t2.telefone IS NULL
-
Respondendo suas questões. 1) Não adianta ficar forçando uma resposta (como o post acima). Entendemos sua pressa e sua necessidade, mas somos voluntários e fazemos isto conforme nos sobra tempo. 2) Suas questões: 2.1) Você deverá fazer como você mesmo disse e, depois, deverá testar se o produto possui algum relacionamento. Se não tiver mais nenhum relacionamento então delete o produto, também. 2.2) Não há necessidade. Pois a inativação serve para informar, que aquele produto não aparecerá mais nas listas de outros cadastros, tais como nota fiscal, vendas, compras, etc. Mas aparecerá nos relatórios de históricos e outros.
-
Este assunto não trata exclusivamente de mysql. Movendo para forum de php
-
Como mover varios arquivos em pastas distintas usando uma função
pergunta respondeu ao fil7er de Denis Courcy em PHP
Este assunto não trata exclusivamente de mysql. Movendo para forum de php. -
(Resolvido) Duvida Herança - Modelagem, Inserção e Remo
pergunta respondeu ao joao1245 de Denis Courcy em MySQL
Respondendo as perguntas. Eu faria como o exposto abaixo: Produto(id,categoria, descricao, modelo, unidade, qtde,vlrunit, idFabricante) Produto_x_Fornecedor(idProduto, idFornecedor) Pessoa(id, razao, nomefantasia, natureza, contato, endereço, cpf_cnpj, ie_rg, ndAtivo, ndFabricante) Sim. Para facilitar, acrescentei um atributo chamado ndFabricante que indicará se a pessoa é um fabricante ou não. Ficara mais facil na hora de selecionar um fabricante para cadastrar. Por isso trouxe o atributo ndAtivo para a tabela pessoa. Assim posso desativar um fornecedor, sem deletá-lo e não haverá erro de integridade em minha base de dados.- 2 respostas
-
- herança mysql
- modelagem
-
(e %d mais)
Tags:
-
Alterar conteúdo de um campo dentro de uma tabela
pergunta respondeu ao jardeldint de Denis Courcy em MySQL
O comando par alterar é este UPDATE pt_product SET quantity=100 Alterará o valor de quantity para 100 em todos os registros da tabela pt_product. O comando para consultar é este SELECT quantity FROM pt_product O que você colocou em seu post é uma salada sem nexo. -
CREATE PROCEDURE consultarProduto( IN Produto varchar(100) AS BEGIN PREPARE stmt FROM "Select Idproduto, Nome, Fabricante, Peso FROM TabProdutos WHERE Nome like CONCAT('%', ?, '%')"; SET @param = Produto; EXECUTE stmt USING @param; END Leia mais sobre Prepared Statements no manual do mysql de sua versão.
-
Dúvida relacionamento sistema com várias filiais
pergunta respondeu ao ratamiette de Denis Courcy em MySQL
Sem conhecer o modelo de dados, sou forçado a concordar com você. Porém, creio que haja soluções mais inteligentes que esta. -
Dúvida relacionamento sistema com várias filiais
pergunta respondeu ao ratamiette de Denis Courcy em MySQL
Não. Dependerá muito da modelagem que você fizer. -
Execute: mysql -u root -p senhadoroot database_name < database_dump_file.sql
-
(Resolvido) Erro ao importar dump pelo MySQL Workbench.
pergunta respondeu ao andersonrc_ de Denis Courcy em MySQL
O erro está acontecendo porque o usuário criado não tem permissão para o banco produtospr. Crie o banco produtospr. Vazio. Dê permissões ao usuário para usar este banco e seja feliz. -
Leia a matéria sobre pivo table que está em destaque neste forum.
-
Crie um select com UNION (ver manual do mysql para detalhes de como montar este select). Depois crie a view com base no select que você criou.
-
(Resolvido) Erro ao importar dump pelo MySQL Workbench.
pergunta respondeu ao andersonrc_ de Denis Courcy em MySQL
O nome do banco de dados é produtos ou produtospr? -
Faça assim: SELECT linhas.id, SUM(IF(passageiro.mensalidade=8,1,0) - (passageiro.linha_ida='NT' OR passageiro.linha_volta='NT')) AS qt_inteiros, SUM(IF(passageiro.mensalidade=8, passageiro.mensalidade,0)) AS soma_inteiros, SUM(IF(passageiro.mensalidade=4,1,0)) AS qt_meios, SUM(IF(passageiro.mensalidade=4, passageiro.mensalidade,0)) AS soma_meios, SUM(IF(passageiro.mensalidade=4,1,0) + (passageiro.linha_ida='NT' | passageiro.linha_volta='NT')) AS qt_nao_conv_meios, SUM(IF(passageiro.mensalidade=4,1,0) + (passageiro.linha_volta='NT')) AS qt_nao_conv_ida_meios, SUM(IF(passageiro.mensalidade=8,1,0) + (passageiro.linha_ida='NT' OR passageiro.linha_volta='NT')) AS qt_total_pagantes, SUM(IF(passageiro.mensalidade=8, passageiro.mensalidade,0) && passageiro.mensalidade=4, passageiro.mensalidade,0) ) AS qt_total FROM passageiro, linhas WHERE(passageiro.situacao='AT' OR passageiro.situacao='CO') AND passageiro.linha_ida=linhas.id GROUP BY linhas.id UNION SELECT linhas.id, SUM(IF(passageiro.mensalidade=8,1,0) - (passageiro.linha_ida='NT' OR passageiro.linha_volta='NT')) AS qt_inteiros, SUM(IF(passageiro.mensalidade=8, passageiro.mensalidade,0)) AS soma_inteiros, SUM(IF(passageiro.mensalidade=4,1,0)) AS qt_meios, SUM(IF(passageiro.mensalidade=4, passageiro.mensalidade,0)) AS soma_meios, SUM(IF(passageiro.mensalidade=4,1,0) + (passageiro.linha_ida='NT' | passageiro.linha_volta='NT')) AS qt_nao_conv_meios, SUM(IF(passageiro.mensalidade=4,1,0) + (passageiro.linha_volta='NT')) AS qt_nao_conv_ida_meios, SUM(IF(passageiro.mensalidade=8,1,0) + (passageiro.linha_ida='NT' OR passageiro.linha_volta='NT')) AS qt_total_pagantes, SUM(IF(passageiro.mensalidade=8, passageiro.mensalidade,0) && passageiro.mensalidade=4, passageiro.mensalidade,0) ) AS qt_total FROM passageiro, linhas WHERE(passageiro.situacao='AT' OR passageiro.situacao='CO') AND passageiro.linha_ida=linhas.id Não testei a logica, mas é por este caminho. Teste o select após o UNION
-
sum(if(mensalidade=4,1,0)) Lêia-se da seguinte forma: Conte 1 se mensalidade = 0; Se não for igual a 4, então não conte Como há uma comparação em if(mensalidade=4,1,0) deve-se usar o SUM e não o COUNT. O COUNT contaria todos. O SUM também SOMA todos mas devido o condicional IF, quando retorna verdadeiro soma 1 e quando retorna falso soma 0
-
faça assim: select linha, sum(if(mensalidade=8,1,0)) as qt_inteiros, sum(if(mensalidade=8, mensalidade,0)) as soma_inteiros, sum(if(mensalidade=4,1,0)) as qt_meios, sum(if(mensalidade=4, mensalidade,0)) as soma_meios from minhatabela group by linha
-
Ok. Não entendi o porquê do termo "respostas evasivas". Então lá vai uma resposta bem direta. Não é função de nenhum banco de dados retornar consultas do tipo que você solicitou acima. Somente através de programação se consegue o resultado que você solicitou.
-
Sim. e você pode obtê-la da seguinte forma: SELECT DISTINCT LAST_INSERT_ID() INTO @variavel FROM tabela Ou Assim: SET variavel = (SELECT DISTINCT LAST_INSERT_ID() FROM tabela)
-
Somente através de sua linguagem de programação.
-
Eu faria uma tabela tópico outra de posts do tópico e outra de mensagens dos posts. ficaria muito fácil de ordenar. Se quiser manter igual ao post #3 acima você pode usar um autorelacionamento na tabela Comentários Comentários: CodCom, CodTop, codComPai, Mensagem (...) codComPai seria o código do comentário que originou. seguindo seu exemplo do primeiro post deste tópico seria assim: CodTop, codComPai, CodCom 1.1.1. 1.1.4. 1.2.2 1.3.3
-
ordene por post, tópico, comentário
-
Faça assim: DECLARE qtd (mesmo tipo do campo quantidade); SET qtd = (select quantidade from estoque where estoque.id_item = id_item); if qtd > quantidade then
-
remova o índices que se referem a este campo; retire qualquer tipo de inicializador para este campo (cláusula default) e tente novamente. Caso não consiga, crie outro campo vazio como auto increment; remova o índice de primary key que será montado para ele; alimenteo com os dados do outro campo; digite o código abaixo para acertar o auto_increment; recrie o íncice primary key para este campo novo e delete o campo antigo; ALTER TABLE minhatabela AUTO_INCREMENT = 1;
-
Ajuda com cálculo entre datas na mesma coluna
pergunta respondeu ao Tchello de Denis Courcy em MySQL
Faça assim: create table horario( idcadastro int unsigned, `status`int unsigned, data_da_alteracao datetime, diferenca_horas time); insert into horario(idcadastro,`status`,data_da_alteracao) values(123,0,"2014-07-01 09:50:00"), (123,1,"2014-07-02 08:50:00"), (123,2,"2014-07-03 10:00:00"), (123,3,"2014-07-04 09:00:00"); call calculaDiferencaHoras; select timediff("2014-07-02 08:50:00","2014-07-01 09:50:00"); select timediff("2014-07-03 10:00:00","2014-07-02 08:50:00"); select timediff("2014-07-04 09:00:00","2014-07-03 10:00:00"); DELIMITER $$; DROP PROCEDURE IF EXISTS `test`.`calculaDiferencaHoras`$$ CREATE PROCEDURE `test`.`calculaDiferencaHoras` () BEGIN DECLARE msg VARCHAR(100) DEFAULT 'Calculado com sucesso'; DECLARE idcadastro_ant INT UNSIGNED; DECLARE idcadastro_atual INT UNSIGNED; DECLARE status_ant INT UNSIGNED; DECLARE status_atual INT UNSIGNED; DECLARE dtAlteracao_ant DATETIME; DECLARE dtAlteracao_atual DATETIME; DECLARE diferenca TIME; DECLARE done SMALLINT UNSIGNED DEFAULT 0; DECLARE excessao SMALLINT UNSIGNED DEFAULT 0; DECLARE c_horario CURSOR FOR SELECT idcadastro,`status`,data_da_alteracao FROM horario; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET excessao = 1; OPEN c_horario; FETCH c_horario INTO idcadastro_ant, status_ant, dtAlteracao_ant; FETCH c_horario INTO idcadastro_atual, status_atual, dtAlteracao_atual; WHILE done <> 1 DO SET diferenca = TIMEDIFF(dtAlteracao_atual, dtAlteracao_ant); START TRANSACTION; UPDATE horario SET diferenca_horas = diferenca WHERE idcadastro = idcadastro_atual AND `status` = status_atual; IF excessao = 1 THEN SET msg = "Erro na autualizacao de horario"; ROLLBACK; SET done = 1; ELSE COMMIT; END IF; SET idcadastro_ant = idcadastro_atual; SET status_ant = status_atual; SET dtAlteracao_ant = dtAlteracao_atual; FETCH c_horario INTO idcadastro_atual, status_atual, dtAlteracao_atual; END WHILE; CLOSE c_horario; SELECT msg; END$$ DELIMITER ;$$