-
Total de itens
3.089 -
Registro em
-
Última visita
Tudo que Denis Courcy postou
-
Como saber maximo de registos de determinado user
pergunta respondeu ao supercop de Denis Courcy em MySQL
Qual o campo que informa a colocação do jogador? -
O segundo erro informa um erro na sintaxe. Poste a SQL aqui para analisarmos onde está o erro.
-
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)?
-
mysql Consulta com soma entre 2 tabelas Mysql
pergunta respondeu ao Anderson Dos Santos Salgado de Denis Courcy em MySQL
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
-
Separar o somatorio de registros diferentes de uma coluna em duas
pergunta respondeu ao FernandoM de Denis Courcy em MySQL
sum(if(estado='candelado',quantidade,0)) as QuantidadeCancelada O mesmo vale para a outra coluna- 1 resposta
-
- select
- juntar tabelas
-
(e %d mais)
Tags:
-
Você fechou p parenteses que você abriu antes de ddd ???
-
-- 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
-
Problema com agrupamento duplicado com subquery
pergunta respondeu ao Gustavo Aparecido de Denis Courcy em MySQL
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; -
Problema com agrupamento duplicado com subquery
pergunta respondeu ao Gustavo Aparecido de Denis Courcy em MySQL
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; ;