-
Total de itens
3.089 -
Registro em
-
Última visita
Posts postados por Denis Courcy
-
-
Em 24/02/2021 em 01:53, Paulo Pacheco disse:
echo "INSERT INTO pages (title, url , body, updated, created) values ("home" "home..", NOW(), NOW())"| mysql -u root -p pp_criando_site_com_php
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
-
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%)
-
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.
-
Bom dia. Criei sua tabela sem erro através do código que você postou.
-
-
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
-
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 -
Qual a composição do argumento EntradaMat?
16 horas atrás, ismorfi disse:Pensei em otimizar deixando programado os feriados nacionais, e ao rodar a consulta ela deve verificar se na semana houve feriado e em qual dia
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.
-
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.
-
14 horas atrás, Ogirdor_HC disse:
select ts.criacao from owner.tabela ts where ts.chamado in('1455678','1459783') group by ts.chamado
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.
-
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.
-
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;
Em 09/11/2020 em 11:54, flaviokowalske disse:Não consegui uma forma de buscar valores de campos específicos em dias diferentes.
É 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;
-
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;
-
Terá que desenvolver um programa para isto.
Leia> https://www.hardware.com.br/comunidade/xml-script/1164328/ -
22 horas atrás, rafaelbahamut disse:
select funcionarios.nome, funcionarios.IDFuncionario, count(*) as "total de vendas"
from funcionarios
INNER JOIN pedidoson funcionarios.IDFuncionario = pedidos.IDfuncionarioINNER JOIN pedidos_detalheson pedidos.IDPedido = pedidos_detalhes.IDPedidogroup by pedidos.IDFuncionario;Esta select está CONTANDO o número de registros por cana nome na intercessão de conjuntos que você forneceu.
22 horas atrás, rafaelbahamut disse:eu preciso listar quanto cada funcionário vendeu (valor liquido e quantidade de itens).
Considerar como Venda Líquida, a Venda Total (Preço Unitário x Quantidade)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.
-
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.
-
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=XNa 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?
-
Remova espaço entre emum e parenteses e entre decimal e parenteses
-
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 seguinte forma:
UPDATE tabela
SET CONCAT(SUBSTR(p_cpfcnpj,1,2),".",SUBSTR(p_cpfcnpj,3,3),".",SUBSTR(p_cpfcnpj,6,3),"/",SUBSTR(p_cpfcnpj,9,4),"-", SUBSTR(p_cpfcnpj,13,2))
WHERE LENGHT(p_cpfcnpj) > 11;
E para formates o CNPJ use
UPDATE tabela
SET p_cpfcnpj = CONCAT(SUBSTR(p_cpfcnpj,1,3),".",SUBSTR(p_cpfcnpj,4,3),".",SUBSTR(p_cpfcnpj,7,3),"-",SUBSTR(p_cpfcnpj,10,2))
WHERE LENGHT(p_cpfcnpj) < 12
-
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).
-
Oi Antônio,
Vamos fazer isso de uma forma antiga e bem didática, com lápis e papel.
Com base no item (a), desenhe um retângulo e coloque nele o nome LOJA;
Dentro do retângulo escreva os nomes dos atributos. CNPJ_LOJA, NOME_LOJA, SIGLA_LOJA;
Como dever de casa, faça o mesmo para CLIENTES e PRODUTOS
Me mostre o resultado. -
Em 04/03/2020 em 09:18, dandrade disse:
SELECT data_envio, caixa.numero_pedido, nome_cliente, modelo.nome,conteudo.quantidade FROM conteudo,equipamento, caixa, pedido,cliente, modelo WHERE pedido.numero_pedido = conteudo.numero_pedido AND cliente.idcliente = pedido.cliente_idcliente AND modelo.idmodelo = conteudo.modelo_idmodelo GROUP BY caixa.numero_pedido
Neste select você não há menção às tabelas equipamento e caixa em associação com outra tabela.
Outro problema é o do GROUP BY. Ele pressupõe que você fará algum tipo de agrupamento usando SUM, COUNT ou outra função deste tipo. No select acima não existe nenhuma destas funções.
usando a sintaxe correta, abaixo podemos ver onde estão os erros mais graves de sua select
SELECT data_envio, cx.numero_pedido, nome_cliente, m.nome, co.quantidade FROM conteudo co INNER JOIN pedido p ON p.numero_pedido = co.numero_pedido INNER JOIN cliente cl ON cl.idcliente = p.cliente_idcliente INNER JOIN modelo m ON m.idmodelo = co.modelo_idmodelo INNER JOIN equipamento e ON ?????? INNER JOIN caixa cx ON ????? WHERE ????? GROUP BY cx.numero_pedido
Se você vai agrupar somente por numero_pedido então não haverá necessidade dos campos data_envio, nome_cliente, e m.nome. E o campo co.quantidade deverá estar em uma das funções de agrupamento mencionadas acima.
-
Melhore a pergunta
-
Por que não colocar este campo como NOT NULL e evitar que tenhas este trabalho?
Usando Like
em MySQL
Postado
Colunas para o livro, capítulo, versículo e texto. Assim será mais fácil de pesquisar.