-
Total de itens
3.089 -
Registro em
-
Última visita
Posts postados por Denis Courcy
-
-
O segundo erro informa um erro na sintaxe. Poste a SQL aqui para analisarmos onde está o erro.
-
Em 13/02/2018 at 11:36, alessandro.albuquerque disse:
Desculpe. Eu não formulei a pergunta corretamente. Deve ter sido o exaustão.
Vou explicar o conceito dessa consulta:
1. Existe um inventário mensal com todos os ativos
2. As colunas são id,ativo,tipodeativo,marcamodelo,status,usuario,centrodecusto,filial,data
3. Estou no terceiro mês ou subsequente a ele(quarto, quinto sexto etc...)
Como irei consultar a diferença do último inventário, ou seja, a diferença das últimas duas datas?
exemplo:
id ativo tipodeativo marcamodelo status usuario centrodecusto filial data 1 12345678 celular positivo p30 in use alessandro.albuquerque 561308 br04 11/01/2018 2 12345678 celular positivo p30 in use diego.bordini 561308 br01 11/02/2018 3 12345678 celular positivo p30 in use alisson.brito 561308 brn1 11/03/2018 4 12345678 celular positivo p30 in use alessandro.albuquerque 561341 br04 11/04/2018 5 12345678 celular positivo p30 in use carlos.augusto 561308 br02 11/05/2018 Ainda não entendi o que você quer.
O campo data em sua tabela é a data do inventário?
Se é a data do inventario, qual o(s) campo(s) que você quer comparar (status, usuario, centrodecusto,filial)?
A alteração, além de ser por data também é por usuário (como você menciona em seu primeiro post deste tópico)?
-
Tente assim:
SELECT r1.ano_mes, r1.total_receitas, d1.total_despesas, (r1.total_receitas - d1.total_despesas) AS saldo FROM ( SELECT SUBSTRING(r.data, 1, 7) AS ano_mes, SUM(r.receitas) AS total_receitas FROM receitas r GROUP BY SUBSTRING(r.data, 1, 7) )r1 LEFT JOIN ( SELECT SUBSTRING(d.data, 1, 7) AS ano_mes, SUM(r.despesas) AS total_despesas FROM despesas d GROUP BY SUBSTRING(d.data, 1, 7) )d1 ON d1.ano_mes = r1.ano_mes
Tenha cuidado para não executar esta select com um período grande ou com um número elevado de registros, pois, por não conter índices em ano_mes, sempre executará por TABLE SCAN.
-
Pelo que entendi, você quer os registros que não estejam nesta data (NOT IN)
SELECT usuario FROM `inventario` where data='11/01/2018'
Tente assim:
SELECT i1.* FROM `inventario` i1 LEFT JOIN ( SELECT i.usuario FROM `inventario` i WHERE i.data='11/01/2018' ) i2 ON i2.usuario = i1.usuario WHERE i2.usuario IS NULL
-
-- flutuação de ordens de venda diária e horária dos últimos 3 meses no Canadá
SELECT p.pais_nome, SUBSTRING(d.`data`,1,7) AS Ano_Mes, COUNT(o.ordem_id) AS qt_ordens FROM ordens o INNER JOIN pais p ON p.pais_id = o.pais_id INNER JOIN datahora d ON d.datahora_id = o.datahora_id WHERE d.data BETWEEN DATE_SUB(DATE(NOW()), INTERVAL 3 MONTH) AND DATE(NOW()) GROUP BY p.pais_nome, Ano_Mes ;
Siga daí para a montagem das outras duas consultas
-
Use
SUM( IF(dataretorno IS NOT NULL, 1, 0))
em vez de
SUM( CASE WHEN dataretorno IS NOT NULL THEN 1 ELSE 0 END)
-
Tente assim:
SELECT m1.material, m1.quantidade FROM ( SELECT material, SUM(quantidade) as quantidade FROM material GROUP BY material ) m1 WHERE m1.material LIKE '%$busca%' AND m1.quantidade LIKE '%$busca1%' ORDER BY m1.material ASC
-
Então use a função LPAD.
SELECT LPAD(20,3,'0') --> 020
SELECT LPAD(2,3,'0') --> 002
-
altere sua tabela para que aceite ZEROFIL
-
Movendo para forum de PHP
-
Movendo para forum de PHP
-
Criar o campo de ID do login do cliente nas tabelas é uma forma inteligente.
Não entendi o que você quiz dizer sobre "forma mais elegante"
-
Modifique esta linha
SELECT * FROM nomeRef WHERE estado = '$Linha[estado]' AND nivel = '3' ORDER BY nome ASC LIMIT $inicio, $quantidade
para
SELECT SQL_CALC_FOUND_ROWS DISTINCT * FROM nomeRef WHERE estado = '$Linha[estado]' AND nivel = '3' ORDER BY nome ASC LIMIT $inicio, $quantidade
Usando
SELECT FOUND_ROWS() AS total
para retornar o total de linhas.
Com este total de linhas você pode calcular a quantidade de páginas e desenvolver sua lógica de paginação
-
sum(if(estado='candelado',quantidade,0)) as QuantidadeCancelada
O mesmo vale para a outra coluna
-
Você fechou p parenteses que você abriu antes de ddd ???
-
15 horas atrás, Mariah Alice disse:
Preciso fazer uma busca em uma tabela e verificar se existe um usuário registrado lá.
-- Inicio da procedure ... -- Area de declaracoes de variaveis de sua procedure DECLARE msg VARCHAR(2000) VALUE "Sem Mensagem"; -- suas mensagens de saida serao atribuidas a esta variavel DECLARE varIdUsuario int; -- variavel de apoio para determinar existencia de usuario SELECT idUsuario INTO varIdUsuario FROM usuario WHERE idUsuario = pidUsuario; -- pidUsuario = parametro passado externamente a procedure IF varIdUsuario IS NULL THEN SET msg = "Usuario não encontrado"; END IF; ... SELECT msg AS msg; -- exibira sua mensagem ao final da procedure -- Fim da procedure;
Este é parte do caminho.
-
-
A primeira coisa a fazer é criar a tabela HistoricoEncomendas. Os campos são com o mesmo nome e tipo dos apresentados na view.
Você já deve ter estudado sobre o comando CREATE TABLE.
A segunda coisa é criar um insert na tabela HistoricoEncomendas com os dados selecionados da view.
Seris algo como
INSERT INTO .... (você já deve ter estudado sobre isso)
SELECT (relação de campos) FROM ViewTotalEncomenda;
Basicamente isso. Se eu fizesse mais estaria fazendo sua terefa escolar e como professor não posso/devo/quero fazer isso.
-
São dois conjuntos(tabelas/entidades) a serem criados.
Cada conjunto possui atributos(campos) que manterão as propriedades(características) de cada elemento do conjunto(registro);
Professor - é o conjunto que manterá(guardará) os professores de uma escola, por exemplo.
Ele possui os atributos Matricula, data de nascimento, nome, salário e mais um outro que veremos mais adiante.
O outro conjunto chama Disciplina, que possui os atributos código e nome.
Ministra - é o relacionamento entre professor e disciplina. Este é um relacionamento UM para MUITOS.
Ele informa no diagrama, que para UMA disciplina pode haver MAIS DE UM professor.
Ministra não é uma entidade física. Não é um conjunto. Não é uma tabela.
Este relacionamento é representado pela inclusão do campo Codigo de Disciplina na tabela Professor.
Continua. Mas aguardo suas dúvidas para prosseguirmos.
-
Bua tarde.
Você criou um campo AUTO_INCREMENT e o referenciou como NULL no insert.
Campos auto incrementados não necessitam de "auxilio" eles fazem o trabalho sozinhos. Além disso, por default, são NOT NULL e precisam ser chaves primárias.
O segundo erro está na declaração do insert sem a declaração de campos que serão inseridos.
O terceiro está na quantidade de campos passada na cláusula VALUES. Está menor que a declaração de campos do insert.
A inclusão deveria ser assim:
INSERT INTO VENDEDORES(NOME, JAN, FEV, MAR, TOTAL, MEDIA)
VALUES('MAFRA', 32, 242, 574, ???);
Onde em ??? deveria haver valor
-
Desculpe, eu errei.
Faça assim:
SELECT a.nick, ui.level FROM user_info ui INNER JOIN account a ON a.uid = ui.uid WHERE ui.level > 0 ORDER BY ui.level DESC
-
Faça assim:
SELECT UID, level FROM user_info ui INNER JOIN account a ON a.uid = ui.uid WHERE level>0 ORDER BY level DESC
-
Dá certo sim.
Respondendo suas questões.
1)você usou having sem usar um operador relacional depois do campo
Resp. A função MAX retorna o valor máximo de uma coluna em um agrupamento. Foi colocada na cláusula HAVING porque esta cláusula só é executada APÓS a cláusula GROUP BY. Como MAX é uma função de agrupamento o HAVING entende que deve selecionar somente a(s) coluna(s) com o valor máximo.
2) e você igualou as chaves primeiras de tabela a1 e funcionario, sendo que eu só tenho a tabela funcionario amigo
Sei que você só tem uma tabela funcionário, mas deve ser de seu conhecimento que a saida de uma query é uma tabela. Neste caso eu a nomeei como `a1` e relacionei esta tabela com a tabela `f` que é a tabela de funcionário. Como a tabela `a1` é o resultado de uma query em funcionário a chave primária das duas tabelas está no mesmo campo.
Para facilitar seu entendimento a rotina abaixo realiza a mesma operação
SELECT idFunc,nomefunc,cargo,MAX(salario) FROM funcionario GROUP BY cargo
Mas se você quiser um resultado igual ao que pretendia anteriormente, poderá usar assim:
SELECT f.nomefunc, f.cargo, f.salario FROM funcionario f INNER JOIN ( SELECT idFunc, cargo, MAX(salario) FROM funcionario GROUP BY cargo ) a1 ON a1.idFunc = f.idFunc ORDER BY f.cargo ASC;
-
Tenta assim:
SELECT f.nomefunc, f.cargo, f.salario FROM funcionario f INNER JOIN ( SELECT idFunc FROM funcionario GROUP BY cargo HAVING MAX(salario) ) a1 ON a1.idFunc = f.idFunc ORDER BY f.cargo ASC; ;
Como saber maximo de registos de determinado user
em MySQL
Postado
Qual o campo que informa a colocação do jogador?