Ir para conteúdo
Fórum Script Brasil

Denis Courcy

Moderadores
  • Total de itens

    3.089
  • Registro em

  • Última visita

3 Seguidores

Sobre Denis Courcy

  • Data de Nascimento 14/07/1960

Contatos

  • Website URL
    http://
  • ICQ
    0

Perfil

  • Gender
    Male
  • Location
    Rio de Janeiro - RJ
  • Interests
    Java, Delphi, MySql, Oracle, Aeromodelismo, Iatismo, ferromodelismo, Axis & Allies Miniatures Game

Últimos Visitantes

14.328 visualizações

Denis Courcy's Achievements

0

Reputação

  1. Denis Courcy

    Usando Like

    Colunas para o livro, capítulo, versículo e texto. Assim será mais fácil de pesquisar.
  2. Cadê a vírgula entre o primeiro e o segundo "home"? Além disso seu INSERT informa 5 campos e seu VALUES possui somente 4
  3. Só um complemento. A fórmula valor = valor*(1+(param_ajuste/100)) Ajusta o valor para cima. Exemplo: valor = 100; param_ajuste = 10; Novo resultado de valor = 110 (subiu 10%) E a fórmula valor = valor*(1-(param_ajuste/100)) Ajusta o valor para baixo. Exemplo: valor = 100; param_ajuste = 10; Novo resultado de valor = 90 (desceu 10%)
  4. Bom dia. Sua tarefa, basicamente, utiliza um dos sois updates abaixo: UPDATE apartamento SET valor = valor*(1+(param_ajuste/100)) WHERE codigo_cond = param_cod_condominio; Ou UPDATE apartamento a INNER JOIN condominio c ON a.codigo_cond = c.codigo SET valor = valor*(1+(param_ajuste/100)) WHERE c.nome = param_nome_condominio; Agora é só colocar um dos dois na procedure.
  5. Leia isto. https://www.horadecodar.com.br/2020/04/29/como-conectar-python-com-mysql/ https://www.w3schools.com/python/python_mysql_insert.asp
  6. Este tipo de consulta é chamado de pivot table. Funciona assim: SELECT produto, SUM(IF(DATA='10/2020',faturamento,0)) AS `Fat_10/2020`, SUM(IF(DATA='11/2020',faturamento,0)) AS `Fat_11/2020` FROM nomedatabela GROUP BY produto Para fazer com que esta query rode dinamicamente é necessário criar uma procedure. É mais fácil fazer através de programação
  7. Rode a query com a cláusula EXPLAIN a frente dela. exemplo EXPLAIN UPDATE.... ou EXPLAIN SELECT ... O EXPLAIN não afetará os dados em sua base. Ele mostrará onde estão os gargalos de índices em sua query. Verifique indices. Em último caso, mostre a query para que possamos ajudá-lo melhor
  8. Qual a composição do argumento EntradaMat? Crie uma tabela e consulte-a. Se retornar NULL não é um feriado. Senão, use a função DAYOFWEEK que, ao passar uma data para ela, retorna 1 para domingo, ..., e 7 para sábado.
  9. Vamos por partes. Como você resolveria o item a? Mostre-me e corrigirei. Tenho por norma não fazer exercícios para alunos. Mas, orientá-los na execução dos mesmos.
  10. Denis Courcy

    MYSQL retorna OK

    Como este select pode retornar multiplas linhas, a instrução BETWEEN na cláusula WHERE do primeiro SELECT não sabe como apresentar a resposta a sua pergunta. Sugiro que você utilize um JOIN entre o primeiro e o segundo SELECT e, assim, consiga obter o que deseja.
  11. Você pode baixar e instalar a versão mysql-5.1.30-win32. Não tenho problemas com a instalação dela em nenhuma versão 32 ou 64 bits de windows XP a Windows Server 12.
  12. Corrigi o SELECT que enviei anteriormente SELECT dtLeitura, SUM(leitura) AS TT_Leitura FROM ( SELECT DATE(L1.horario) AS dtLeitura, (L1.leitura * -1) AS leitura FROM leituras L1 INNER JOIN ( SELECT MIN(L2.horario) AS hora2 FROM leituras L2 WHERE DATE(L2.horario) = '2020-11-05' ) Minimo ON Minimo.hora2 = L1.horario UNION SELECT DATE(L3.horario) AS dtLeitura, L3.leitura AS leitura FROM leituras L3 INNER JOIN ( SELECT MAX(L4.horario) AS hora4 FROM leituras L4 WHERE DATE(L4.horario) = '2020-11-05' ) Maximo ON Maximo.hora4 = L3.horario ) a; É uma repetição do exercício anterior onde a menor leitura (aquele multiplicado por -1) será o maior valor do dia anterior e a menor leitura será o menor do dia atual. Tente assim: SELECT dtLeitura, SUM(leitura) AS TT_Leitura FROM ( SELECT DATE(L1.horario) AS dtLeitura, (L1.leitura * -1) AS leitura FROM leituras L1 INNER JOIN ( SELECT MAX(L2.horario) AS hora2 FROM leituras L2 WHERE DATE(L2.horario) = '2020-11-05' ) Minimo ON Minimo.hora2 = L1.horario UNION SELECT DATE(L3.horario) AS dtLeitura, L3.leitura AS leitura FROM leituras L3 INNER JOIN ( SELECT MIN(L4.horario) AS hora4 FROM leituras L4 WHERE DATE(L4.horario) = '2020-11-06' ) Maximo ON Maximo.hora4 = L3.horario ) b;
  13. A primeira coisa a fazer é trocar o tipo DATETIME por TIMESTAMP. A segunda coisa é criar um campo dtLeitura do tipo DATE e criar um índice por ele para acelerar o processo. O código pode ser como o abaixo ou melhorar conforme sua vontade. Usei a função DATE para obter a data sem a hora e assim, facilitar a pesquisa. Porém isto causará TABLE SCAN. Ou seja, varrerá toda a tabela. A primeira leitura multiplica por -1 para inverter o sinal e obter a subtração dos dois elementos de leitura. SELECT SUM(leitura) AS consumo FROM ( SELECT (leitura * -1) AS leitura, MIN(horario) AS horario FROM leituras WHERE DATE(horario) = '2020-11-05' GROUP BY DATE(horario) UNION SELECT leitura, MAX(horario) AS horario FROM leituras WHERE DATE(horario) = '2020-11-05' GROUP BY DATE(horario) ) a;
  14. Terá que desenvolver um programa para isto. Leia> https://www.hardware.com.br/comunidade/xml-script/1164328/
×
×
  • Criar Novo...