Jump to content
Fórum Script Brasil

Denis Courcy

Moderadores
  • Content Count

    3083
  • Joined

  • Last visited

Community Reputation

0 Neutro

1 Follower

About Denis Courcy

  • Rank
    Moderador MySQL [VOLUNTÁRIO]
  • Birthday 07/14/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

Recent Profile Visitors

11903 profile views
  1. 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
  2. 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
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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'
  8. 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(horar
  9. Terá que desenvolver um programa para isto. Leia> https://www.hardware.com.br/comunidade/xml-script/1164328/
  10. Esta select está CONTANDO o número de registros por cana nome na intercessão de conjuntos que você forneceu. Para fazer o que você escreveu você deverá usar a função SUM, que somará os valores desejados. Então seria algo como SUM(Preço Unitário * Quantidade) AS TT_VendaTotal, que daria a soma total de vndas líquidas.
  11. Este erro informa que você informou 20 campos mas que ele espera 21. Por isso não deixa gerar a procedure. Reveja seu código.
  12. Bom dia. Estas tabelas se relacionam? Se sim. Com quais campos? O campo nome é o campo comum entre as tabelas? Por exemplo. Tabela Produto Nome=X Na tabela insumos teria nome=X, tipo=x, data_produção=xxxx-xx-xx, preço=0.00, estoque=xxxx O campo estoque é numérico? Se sim não deveria ser do tipo numerico e não varchar?
  13. Remova espaço entre emum e parenteses e entre decimal e parenteses
  14. Para remover a mascara use o REPLACE UPDATE tabela SET campo = REPLACE(REPLACE(REPLACE(REPLACE(p_cpfcnpj, ".", ""), "-", ""), "/", ""), " ", "") ; O update acima grava os dados desformatados . O primeiro REPLACE remove os espaços; o segundo remove as barras; o terceiro remove os traços e o quarto remove os pontos. UPDATE tabela SET p_cpfcnpj = NULL WHERE LENGHT(p_cpfcnpj) < 11; No update acima ele verifica, depois de desformatar o campo p_cpfcnpj, se ele é menor que 11 digitos e o grava como nulo. Para formatar o CNPJ use a função abaixo da se
  15. Bom dia. Fiz um teste e retornou sem problemas. Veja o código que usei. SELECT c1.* FROM base1.cliente c1 INNER JOIN base2.cliente c2 ON c2.matricula = c1.matricula LIMIT 10 É importante que os dois bancos estejam no mesmo servidor de bd (mesmo serviço).
×
×
  • Create New...