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. Oi, 'Alex Mauricio' Este é m processo que vai ter que ser executado em vários passos, por medida de segurança. 1º passo - Criar um campo auxiliar para evitar problemas no campo atual ALTER TABLE minhatabela ADD COLUMN tel_aux VARCHAR(15); O nome da tabela, o nome do campo, o tipo varchar e o tamanho co campo ficam por sua conta. 2º passo - Carregando os dados:UPDATE minhatabela SET tel_aux = CONCAT("(ddd)", IF(locate("-", tel_atual) = 4, "X", ""), tel_atual); 3º passo - Colocando no lugar certoUPDATE minhatabela SET tel_atual = tel_aux; 4º passo - Apagando o rastroALTER TABLE minhatabela DROP COLUMN tel_aux;
  2. Denis Courcy

    Consulta no MySQL

    Resposta: select nome from pessoa where id not in (select distinct idpessoa from contatos where idempresa = 2); A desigualdade acima não existe em termos de SQL. Inner join retorna as linhas que existem em ambas tabelas. Se não há correspondente, em qualquer uma das tabelas ele não traz nada. Na cláusula ON deve sempre haver uma igualdade.
  3. Oi, 'padcoe' Tenta assim: select ASSOCIACAO.DT_CADASTRO_SISTEMA, ASSOCIACAO.COD_BARRAS_TALAO, MENSAGEM_RECEBIDA.COD_BARRAS_TALAO, case WHEN (select count(*) from MENSAGEM_RECEBIDA where MENSAGEM_RECEBIDA.COD_BARRAS_TALAO = ASSOCIACAO.COD_BARRAS_TALAO) > 1 then (select min(MENSAGEM_RECEBIDA.DATA_HORA) from MENSAGEM_RECEBIDA where MENSAGEM_RECEBIDA.COD_BARRAS_TALAO = ASSOCIACAO.COD_BARRAS_TALAO) ELSE NULL end, MENSAGEM_RECEBIDA.COD_BARRAS_OPERADOR, MENSAGEM_RECEBIDA.COD_BARRAS_PONTO_VENDA from ASSOCIACAO left join MENSAGEM_RECEBIDA on ASSOCIACAO.COD_BARRAS_TALAO = MENSAGEM_RECEBIDA.COD_BARRAS_TALAO where ASSOCIACAO.ID_USUARIO_OPERADOR is null and ASSOCIACAO.DT_DEVOLUCAO_SUPERVISOR is null and ASSOCIACAO.DT_CADASTRO_SISTEMA = '2009-05-17' order by ASSOCIACAO.COD_BARRAS_TALAONão pude testar, mas creio que a sintaxe agora está correta.
  4. Oi, 'sumocoski' Seu campo está como string (varchar ou char) por isso está ordenando errado. Pois a string que começa com "9" em "96" é maior que a string que começa com "3" em "300". Solução: mude o tipo do campo para numérico.
  5. E onde em wip_cliente você declarou se_id ? Deveria haver uma declaralçao se_id int not null default 0 na tabela wip_cliente. Se não tiver esta decleração não vai funcionar.
  6. Oi, 'Henrique Neto' Se você quer que o relacionamento entre clientes e serviços seja de 1 para muitos (1:N) Um cliente pode realizar muitos serviços. Então o código do cliente deve estar na tabela de serviços para que o relacionamento possa ser estabelecido. Então teremos a seguinte estrutura de cliente: create table wip_cliente ( cli_id int not null auto_increment, cli_nome varchar(50) not null, cli_cpf varchar(11) not null, cli_rg varchar(10) not null, cli_datanasc date not null, cli_end varchar(45) not null, cli_complemento varchar(20) null, cli_num float not null, cli_cep char(8) not null, cli_bairro varchar(45) not null, cli_cidade varchar(45) not null, cli_telefone varchar(12) not null, cli_email varchar(45) not null, cli_formapagamento varchar(45) not null, cli_cartao float null, cli_validade date null, cli_codigo int null, cli_banco varchar(40) null, cli_ag int null, cli_conta float null, PRIMARY KEY (cli_id) )ENGINE = InnoDB; e a tabela de serviços será:create table wip_servicos( se_id int not null auto_increment, cli_id int not null default 0, se_nome varchar(50) not null, se_preco float not null, PRIMARY KEY (se_id), CONSTRAINT fk_se_id FOREIGN KEY (cli_id) REFERENCES withoutpaper.wip_cliente(cli_id) ON DELETE NO ACTION ON UPDATE NO ACTION)ENGINE = InnoDB;
  7. Denis Courcy

    problema com select

    Não está apresentando porque não há id correspondente em todas as tabelas. Não tenho como te ajudar. Talvez no form de PHP`você consiga a resposta.
  8. 'granito' É isso mesmo. estava na cara o tempo todo. out é palavra reservada do mysql. Palavras reservadas podem ser nomes de campos mas tem que ser representadas entre crases. Por exemplo `out`. Tópico fechado.
  9. 'granito' Por que você não cria outro campo tipo out2 e copia os dados de out para out2 e depois exclua o campo out e renomeie o campo ot2 para out? Vai ser mais fácil que pesquisar o porquê do campo out não funcionar.
  10. MODIFY. Segue a sintaxe: ALTER TABLE suatabela MODIFY campo VARCHAR(x); Referência:6.5.4. Sintaxe ALTER TABLE
  11. Oi, 'ThinkBrunus' O correto é: SELECT posto.sigla AS posto,classe.sigla AS classe,apelido,divisao.sigla AS divisao,detalhe.nome AS detalhe,nivelacesso_detalhe.id_nivelacesso FROM utilizador, INNER JOIN posto posto.id_posto=utilizador.id_posto INNER JOIN classe ON classe.id_classe = utilizador.id_classe INNER JOIN detalhe ON detalhe.id_detalhe = utilizador.id_detalhe INNER JOIN divisao ON detalhe.id_divisao = divisao.id_divisao INNER JOIN nivelacesso_detalhe ON detalhe.id_detalhe = nivelacesso_detalhe.id_detalhe Não testei o código. mas creio estar correto, agora.
  12. Analisei novamente a estrutura de sua tabela. Creio que você está sendo limitado pelo número de campos TEXT . Veja o que fala o manual sobre este tipo de campo: Faça experiências usando menos campos e vá acrescentando um de cada vez.
  13. 'ANDRE_GUSTAVO' Informe a sequencia de comando que você usou.
  14. Sim. Para a solução que você propôs são três tabelas. Uma para utilizador, outra para permissões e outra para permissões_do_utilizador. Esta é uma ligação de muitos para muitos o que, fisicamente, impõe a construção de três tabelas.
  15. Denis Courcy

    Problema com o Charset

    'turha' O mysql tem uma função que talvez possa te ajudar. Faça um select usando como no exemplo abaixo e vê se dá certo: SELECT CONVERT(meucampo USING utf8) FROM minhatabela;
  16. 'granito' Mais uma vez vamos testar e ver se o que penso do phpmyadmin é verdade. Tenta agora a reporte o erro encontrado. informe, também a versão de seu servidor MySQL. SELECT nome, jan, fev, mar, abr, mai, jun, jul, ago, sep, out, nov, dez, id FROM alunos
  17. 'granito' Não consigo determinar onde este código SELECT nome, jan, fev, mar, abr, mai, jun, jul, ago, sep, out, nov, dez, id, id AS kt_pk_alunos FROM alunosestá errado. Só resta o nome da tabela. Ele está correto? A tabela se chama "alunos"?
  18. 'granito' Você pode passar a estrutura da tabela? Estou desconfiado que tem atributos que não existem ou que estão com nomes errados.
  19. Oi, 'granito' Tente limitar este erro ao ponto onde foquei no primeiro post. Veja se você consegue executar esta query desta forma SELECT nome, jan, fev, mar, abr, mai, jun, jul, ago, sep, out, nov, dez, id, id AS kt_pk_alunos FROM alunos WHERE id = 3 ou desta formaSELECT nome, jan, fev, mar, abr, mai, jun, jul, ago, sep, out, nov, dez, id, id AS kt_pk_alunos FROM alunose obter resultados corretos.
  20. Oi Antonio! O MySQl mudou bastante da versão 4.1 para a 5.1. As tabelas agora ficam em C:\Arquivos de programas\MySQL\MySQL Server 5.1\data.Você pode alterar o nome do tablespace do InnoDB, mas para isso precisará editar o arquivo my.ini em mas eu aconselho que você faça testes em um banco de testes em um servidor separado do principal.Trabalar no arquivo de configuração, de forma errada, pode parar definitivamente o BD e você não conseguirá reativar o serviço do mysql no servidor. Para parar o serviço do MySQL você tem dois caminhos. Um, através do Painel de controle (veja este link Descobrir senha de banco mysql), que é minha preferência e outra através do utilitário MySQL Administrator 1.1 que pode ser baixado do site da MySQL AB e instalado em sua máquina). Esta eu vou ficar devendo. Pois tudo o que tenho é em inglês.
  21. Denis Courcy

    NOT EXISTS

    Oi, 'CurtisCraig' Você disse: Isto aconteceu porque as tabelas stats e/ou openRate trabalharam em TABLE SCAN (que é uma varredura completa). Ou seja, não há índices nestas tabelas pelo atributo idEmail delas. O fato de retornar um conjunto vazio pode estar relacionado a não haver, realmente, nenhum registro que corresponda a sua pesquisa. Nesta caso você está procurando por emails que NÃO existam nas tabelas stats e openRate e que possuam o atributo soft_bounces maior que 2. Faça testes verificando se encontra resposta em uma e depois em outra tabela. Assim: Select idEmail, soft_bounces from subscribers where subscribers.idEmail NOT IN (SELECT distinct idEmail FROM stats) e depoisSelect idEmail, soft_bounces from subscribers where subscribers.idEmail NOT IN (SELECT distinct idEmail FROM openRate)Verifique se há componentes que satisfaçam o que você procura. Caso não encontre nenhum, ou emcontre em um e não em outro a resposta de conjunto vazio em sua pesquisa inicial foi correta e não há erro em sua lógica.
  22. Oi, 'granito' Você pode traduzir isso? id = 3.(MUPD_RS) O que é este ponto e o que está em MUPD_RS Se o ponto for o sinal de multiplicação use * no lugar do ponto
  23. Denis Courcy

    Inicialização

    Oi, 'Anãod®é™' Como o script criado por você tem muitos erros e seu problema é bem mais básico que criar uma tabela, vamos tratar primeiro de seu conhecimento básico em bancos de dados e em sql. Podemos definir que bancos da dados são coleções de tabelas. Cada tabela pode ser definida como uma planilha (tipo excel, por exemplo), com colunas e linhas. Chamamos cada coluna de campo ou, como prefiro por ser mais didático, atributo. Cada linha da tabela representa um registro. Em modo mais prático, cada coluna armazena uma qualidade (daí i nome de atributo) do que a tabela se propõe a armazenar. Por exemplo, uma tabela de clientes, cada registro (linha) guardará um cliente , a linha 1 guarda os dados do cliente André, a linha 2 guarda os dados do cliente Denis, e por aí vai. Cada coluna conterá os atributos que são importantes para o meu controle daquele cliente. Por exemplo uma coluna para guardar o nome do cliente, outra pra guardar o CPF, outra para guardar a data de nascimento, etc. O link a seguir te dará um panorama básico sobre banco de dados 1. Conceitos básicos sobre banco de dados relacional Aconselho que você compre e leia este livro Sistemas de Banco de Dados Leia com atenção e poste suas dúvidas.
  24. 'edersonnves' Você deve estar fazendo algo errado, pois consegui cadastrar sua procedure em meu banco de testes, sem problemas. Verifique a sintaxe. Procure escrever a rotina ou copiar linha a linha para não trazer nenhum caracter estranho.
×
×
  • Criar Novo...