Ir para conteúdo
Fórum Script Brasil

Denis Courcy

Moderadores
  • Total de itens

    3.089
  • Registro em

  • Última visita

Tudo que Denis Courcy postou

  1. Veja se atende: SELECT * FROM suporte s INNER JOIN login l ON l.cliente_id = s.cliente_id INNER JOIN radius_acct r ON r.usuario = l.user WHERE s.CLOSEDATA = '0000-00-00 00:00:00' AND r.ACCTSTOPTIME = '00-00-0000 00:00:00'
  2. Corrigido CREATE DATABASE prova; USE prova; CREATE TABLE professor( id_professor INT NOT NULL, nome VARCHAR(50) NOT NULL, disciplinas VARCHAR(20) NOT NULL, PRIMARY KEY (id_professor) ); CREATE TABLE disciplinas( id_disciplinas INT NOT NULL, Materias VARCHAR(30) NOT NULL, professor VARCHAR(30) NOT NULL, PRIMARY KEY (id_disciplinas) ); CREATE TABLE alunos( id_alunos INT NOT NULL, nome VARCHAR(50) NOT NULL, notas INT NOT NULL, PRIMARY KEY (id_alunos) ); INSERT INTO professor(id_professor,nome,disciplinas) VALUES ('1', 'Emilio Fernandes','Lingua Portuguesa'), ('2', 'Francisco Gomes','Matematica'), ('3', 'Daniel Estrada','Filosofia'), ('4', 'Celio Drummond','Sociologia'), ('5', 'Abelardo Barbosa','Historia'), ('6', 'Bernardo Costa','Fisica'); INSERT INTO disciplinas(id_disciplinas,Materias,professor) VALUES ('1','Lingua Portuguesa','Emilio Fernandes'), ('2','Matematica','Francisco Gomes'), ('3','Filosofia','Daniel Estrada'), ('4','Sociologia','Celio Drummond'), ('5','Historia','Abelardo Barbosa'), ('6','Fisica','Bernardo Costa'); INSERT INTO alunos(id_alunos,nome,notas) VALUES ('1','Lucas','6'), ('2','Marcos','7'), ('3','Maria','8'), ('4','Felipe','9'), ('5','Paulo','10'); SELECT AVG(notas) FROM alunos; SELECT nome FROM alunos ORDER BY nome; SELECT nome FROM professor ORDER BY nome DESC; SELECT nome FROM professor ORDER BY nome; SELECT id_alunos FROM alunos;
  3. Faça assim: update Table set ID= CONCAT(ID, "01")
  4. Denis Courcy

    CONSULTA SQL

    Substitua if ($dados['email'] !== $email) { por if ($dados['email'] != $email) { ou por if (trim($dados['email']) !== trim($email)) {
  5. Em minha base de teste criei as tabelas abaixo e populei conforme a imagem que você forneceu: CREATE TABLE rec_lider( cd VARCHAR(30), totalRecebido INTEGER) ; INSERT INTO rec_lider(cd,totalrecebido) VALUES('OSASCO',20), ('CAJAMAR',10), ('são PAULO',15), ('OSASCO',30), ('OSASCO',40), ('JUNDIAI',50), ('RECIFE',10), ('RECIFE',40), ('OSASCO',20), ('CAJAMAR',30) ; CREATE TABLE rec_fiscal( cd VARCHAR(30), totalRecebimento INTEGER) ; INSERT INTO rec_fiscal(cd,totalrecebimento) VALUES('OSASCO',20), ('CAJAMAR',10), ('são PAULO',15), ('OSASCO',30), ('OSASCO',40), ('JUNDIAI',50), ('RECIFE',10), ('RECIFE',40), ('OSASCO',20), ('CAJAMAR',30) ; Executei o select abaixo: SELECT rl.Unidade, `Total Recebido`, `Total Recebimento` FROM (SELECT cd AS Unidade, SUM(total_recebido) AS `Total Recebido` FROM rec_lider GROUP BY cd ) rl INNER JOIN (SELECT cd AS Unidade, SUM(total_recebimento) AS `Total Recebimento` FROM rec_fiscal GROUP BY cd ) rf ON rf.Unidade = rl.Unidade GROUP BY rl.Unidade ;
  6. Creio que o que você quer seja isto: SELECT o.categoria, u.nome, ur.nome as responsavel FROM ocorrencia o INNER JOIN usuario u ON u.id_usuario_pk = o.id_usuario_ocorrencia_fk INNER JOIN usuario ur ON o.id_responsavel_ocorrencia_fk = ur.id_usuario_pk WHERE o.numero = 'OS20166317';
  7. O que você fez até agora? Mostre o que conseguiu que te orientaremos nas correções.
  8. Controle através da linguagem de programação. Mas, se quiser controlar no banco, informe qu o campo é not null. Faça uma trigger para controlar o intervalo. Se não estiver de acordo informe NULL para o campo. A inclusão não será realizada. Outra forma, que é a que faço, utiliza storage procedure para controlar a gravação. Assim é possível enviar mensagem informando o porquê da rejeição.
  9. Para somar ou subtrair valores de tempo leia Funções de Data e Hora no MySQL
  10. Faça o trigger normalmente. O motor do MySQL já faz isso por você.
  11. Conforme mostra a imagem que você postou no outro site e que tomei a liberdade de postar aqui, Isto acontece por causa do join que você está impondo em seu select . Segundo a estrutura de suas tabelas, cada elemento de rec_lider apontará para vários elementos de rec_fiscal que correspondam a igualdade rec_lider.cd = rec_fiscal.cd. Exemplo: Tomando cd = Osasco, O primeiro registro de rec_lider(Osasco, 20) apontará para os seguintes registros em rec_fiscal (Osasco 20),((Osasco 30), Osasco, 40) e (Osasco, 20); O registro (Osasco, 30) em rec_fiscal apontará para os mesmos registros em rec_fiscal e etc. A solução é somar rec_lider antes de conectar o join. Somar os dados de rec_fiscal, também, antes de conectar o join. E realizar um join para exibir os totais. Por que fazer assim? Porque assim, assim rec_fiscal.cd terá somente um registro por cd, assim como rec_lider.cd Então teremos: SELECT Unidade, `Total Recebido`, `Total Auditado`, `Total Devolvido` FROM (SELECT rec_lider.cd AS Unidade, SUM(rec_lider.total_recebido) AS `Total Recebido`, FROM rec_lider GROUP BY rec_lider.cd ) rl INNER JOIN (SELECT rec_fiscal.cd AS Unidade, SUM(rec_fiscal.total_recebimento) AS `Total Auditado`, SUM(rec_fiscal.total_devolvido) AS `Total Devolvido` FROM rec_fiscal GROUP BY rec_fiscal.cd ) rf ON rf.Unidade = rc.Unidade GROUP BY rl.Unidade
  12. Comece eliminando possíveis problemas: Faça uma string de conexão sem o uso de variáveis: strConexao = "Driver={MySQL ODBC 3.51 Driver};SERVER=localhost; DATABASE=info16br; Uid=root; Pwd=admin" Use o MyODBC 5.x para versões do MySQL acima da versão 5.x e com Windows XP SP3 ou maior Em seu sql strSql = strSql & + " WHERE " + request.Form("modo") + " LIKE " + "'%" + Não está faltando algo entre o LIKE e o %?
  13. Em Totals, 2005, 2006 e 2007 Você está usando apóstrofo ou crase? O correto é crase. O ADO não está reconhecendo o caracter.
  14. A partir da versão 5.0 do MySQL, para acessar o root por outra estação que não o console, é necessário criar um usuário root@% e dar as permissões de acesso a ele.
  15. Remova os @ de dentro da procedure para todas as variáveis declaradas dentro da procedure. Exemplo: Você declarou declare table_id int; Então deve tratar select r_table from S_QOS_DATA where table_id = @table_id como select r_table from S_QOS_DATA where table_id = table_id Eu uso um padrão para evitar conflito entre nomes de variáveis e campos dentro da procedure. Toda variável é declarada com um "p" de procedure na frente do nome da variável. Assim, a declaração seria declare ptable_id int; e o uso: select r_table from S_QOS_DATA where table_id = ptable_id Tratamento para o parâmetro query quando no uso de um comando prepare: Transfira o conteúdo de query para uma variável pública : SET @ppquery = query; prepare stmt from @ppquery; EXECUTE stmt; deallocate prepare stmt; @ppquery não deve ser declarada dentro da procedure. Ela tem visão pública e o comando prepare não aceita variáveis private.
  16. Movendo para o fórum de PHP
  17. Se você está tentando atualizar os valores de Produtos que não tem item de pedido, então o select deveria ser assim: UPDATE produto p LEFT JOIN itempedido ip ON ip.idProduto = p.idProduto set p.valorUnitario=20 where ip.idproduto IS NULL;
  18. Em vez de SET @dataA = now()-1; Você já tentou SET @dataA = DATE_SUB(NOW(), INTERVAL 1 DAY) ?
  19. Faça assim: SELECT SUM(IF(Calc >= 14, 1, 0)) AS Satisfeitas, SUM(IF(Calc < 14, 1, 0)) AS Insatisfeitas FROM ( SELECT quest3 + quest8 + quest11 + quest12 + quest14 + quest27 + quest32 as Calc FROM tb_postagens ) resultado
  20. Denis Courcy

    Select Multiplos

    No código abaixo não está faltando a cláusula WHERE? Leia mais sobre PDOStatement::bindParam em http://php.net/manual/pt_BR/pdostatement.bindparam.php
  21. Na tabela vendas crie um índice por (codven,dataven). A ideia é evitar ou diminuir ao máximo o filesort. Ele está usando o índice idx_vendas_codven para a cláusula where e filesort. Use SELECT STRAIGHT_JOIN para forçar o motor do MySQL a ler o select da esquerda para a direita. Ou seja, para que execute conforme a ordem que você montou o select. SELECT STRAIGHT_JOIN cli.CLICOD, cli.CLINOM, cli.CLICPF, vda.CODVEN,vda.DATVEN, vda.NUMVEN, vda.CLIVEN, vda.QTDVEN, vda.VALVEN, vda.ESPVEN, vda.TOTVEN, vda.MARCADO, vda.CUPOM, IF(vda.CUPOM!='S' AND vda.MARCADO!='S',vda.QTDVEN,0) AS VENDAS_OUTRAS, IF(vda.CUPOM='S', vda.QTDVEN,0) AS VENDAS_CUPOM, IF(vda.MARCADO='S',vda.QTDVEN,0) AS VENDAS_NF, tv.CODVENDA, tv.ENTRADA_SAIDA FROM vendas AS vda LEFT JOIN clientes AS cli ON cli.CLICOD = vda.CLIVEN LEFT JOIN tvenda AS tv ON vda.NUMVEN = tv.CODVENDA WHERE vda.CODVEN = 1 AND vda.CODVEN !=0 order by vda.DATVEN DESC
  22. Ok. Na tabela vendas, crie um índice por datev. e rode de novo com e sem o explain. Sem o explain verifique a alteração no tempo. Com o explain, poste o resultado.
×
×
  • Criar Novo...