Ir para conteúdo
Fórum Script Brasil

tércio fernandes

Membros
  • Total de itens

    80
  • Registro em

  • Última visita

Posts postados por tércio fernandes

  1. Bom dia Denis, entendi.

    Só que mesmo atribuindo valores diretamente da seguinte maneira não passa:

    update tbllancnbm2 as l2
    inner join tbllanc as l
    on (l2.lanca_lnbm = l.numer_lanc and l2.codig_empr = l.codig_empr and l2.mescp_lnbm = l.MESCP_LANC and l2.ANOCP_LNBM = l.ANOCP_LANC)
    set l2.tabeb_lnbm = '00'
    where l2.codig_empr = 0044 and l2.mescp_lnbm = 09 and l2.ANOCP_LNBM = 2014 and l.espec_lanc = 'ECF';
    
  2. <script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script>

    Já não lembro muito do mysql 3, mas vamos acompanhar para tentarmos resolver.
    As interrogações são só um exemplo para demonstrar parâmetros?
    Você já tentou em um banco de teste colocar um valor literal e ver a resposta?
    Para tabela temporária crie a mesma estrutura da tabela atual colocando o engine MEMORY. Na verão 3 use TYPE=MEMORY

    CREATE TEMPORARY TABLE exemplo(
    relacao de campos
    )TYPE=MEMORY

    Olá Denis, olha so esse query eu consegui fazer a muito tempo atrás e por coincidência foi você que me ajudou, na época eu não sabia que podia fazer vários AND dentro do ON do INNER JOIN do UPDATE.

    Então vamos lá!

    As interrogações são preparedstatement que vem os valores pela aplicação, é isso que você tava pensando mesmo!

    Como assim valores literais? não sei como seriam!

    Att

    Tércio

  3. Olá pessoal. Tenho um update que funciona perfeitamente em uma versão 5.1 do MySQL. Só que estou precisando usa-lo em um mysql mais antigo 3.4 e da "pal". Já dei uma pesquisa na DOC do MySQL pensando eu que não funcionava UPDATE com duas tabelas na versão 3 mais pelo menos na DOC tem exemplos de uso.

    Meu comando é:

    update tbllancnbm2 as l2
    inner join tbllanc as l
    on (l2.lanca_lnbm = l.numer_lanc and l2.codig_empr = l.codig_empr and l2.mescp_lnbm = l.MESCP_LANC and l2.ANOCP_LNBM = l.ANOCP_LANC)
    set l2.tabeb_lnbm = ?
    where l2.codig_empr = ? and l2.mescp_lnbm = ? and l2.ANOCP_LNBM = ? and l.espec_lanc = ?;
    

    erro 1064#

    Já tentei também:

    update tbllancnbm2 as l2
    , tbllanc as l
    set l2.tabeb_lnbm = ?
    where (l2.lanca_lnbm = l.numer_lanc and l2.codig_empr = l.codig_empr and l2.mescp_lnbm = l.MESCP_LANC and l2.ANOCP_LNBM = l.ANOCP_LANC)
    and ( l2.codig_empr = ? and l2.mescp_lnbm = ? and l2.ANOCP_LNBM = ? and l.espec_lanc = ? )
    

    E também por subquery mais recebi aquele erro que não posso atualizar via subquery pois a tabela que vai ser atualizada participa ai não pode atualizar.

    Já vi falar em tabelas temporárias!

    Por favor se alguém puder me ajudar ficarei muito grato.

  4. Pessoal, seguinte:

    Como é que agente faz pra dar um DISTINC em apenas uma Coluna.

    Explicando melhor, tenho seguinte Query: "Select Distinct nome, telefone from usuarios" so que li que o Distinct vai querer pegar dados distintos entre nome e telefone. Porém na linha consulta eu terei outros campos que preciso colocar nessa minha query mas não quero que os distinct as leve em consideração, se tiver repedito pode trazer.

    E agora?

    Grato pela ajuda.

  5. Genial hehehehe!

    Certinho Dênis, ta pegando agora o Inner Join. Eu não sabia que podia dar AND no ON.

    OBS: Não compreendi por certo.

    "Não pode ser abolida nem trocar de lugar neste arranjo ou você estará fadado a um TABLE SCAN."

    Se puderes exemplificar agradeço.

    No mais [Tópico Resolvido]

  6. Analisando information_schema percebi que ele registra na tabela statistics várias informações que poderiam me ajudar a monotirar uma inserção de um lançamento, porém não tem uma coluna com uma data e hora pra ajudar a encontrar uma determinada tarefa feita hoje por exemplo. Então pensei em apagar todos os registros que foram lançados pro meu banco com o comando:

    DELETE from STATISTICS where TABLE_schema = 'meu_banco';

    porém:

    Acess denied for user 'root'@'localhost' to database 'information_schema';

    :wacko:

  7. Fala Dênis, e toda galera do ScriptBrasil bom dia.

    Olha so essa situação:

    Tenho duas tabelas lanc e lanc2, uma tem os lançamentos e a outra detalhamento do lançamento respectivamente. Mesmo assim, algumas colunas estão nas duas tabelas, como 'codigo_empresa', 'ano_lançamento', 'mes_lançamento', 'numero_lançamento'. Vejo que nem precisava essa duplicidade mas.....

    Então estou precisando da um Inner join pra pegar so a empresa que quero o mes e o ano.

    Estou dando um inner join:

    select * 
    from lanc as t1 
    INNER join lanc2 as t2 ON (t1.numero_lançamento=t2.numero_lançamento) 
    where t1.codigo_empresa = 45 and t1.mes_lancamento = 10 and t1.ano_lancamento = 2013;
    
    Nesse mês 10 tenho apenas 2 lançamentos, porém quando disparo esse inner join vem uma porrada de resultados trazendo empresas que não deveria mês que não está no filtro etc.

    Não o que estou fazendo de errado, ate criei uma tabela produtos e uma vendas pra fazer uns testes e pega direitinho, so traz o que ponho depois do WHERE, mas nessa de cima não vai...

    Alguma sujestao?

  8. Consegui galera: de repente ajuda alguém

    update vendas as v
    inner join produtos as p on (v.produto_id=p.id)
    set v.produto_id = 4
    where v.produto_id = 1 and v.tipo = 'ecf';

    a ordem dos comandos ficou diferente e prestou.

  9. Pessoal boa tarde, to com uma dúvida aqui e queria ajuda de vocês.

    Tenho 2 tabelas relacionadas segue imagem

    Vendas http://www.imageshack.com/i/0km3b3p

    Produtos http://www.imageshack.com/i/1qjhf0p

    Fiz um select com inner join que me resultou o seguinte resultado:

    http://www.imageshack.com/i/0oxnypp

    Segue o select:

    select v.* from produtos as p inner join vendas as v  on (p.id=v.produto_id) where v.produto_id = 1 and v.tipo = 'ecf'

    Queria saber como lançar isso no meu UPDATE pois não consegui.

    Tentei da seguinte forma:

    update vendas
    set produto_id = 4
    where (select v.id from produtos as p inner join vendas as v  on (p.id=v.produto_id) where v.produto_id = 1 and v.tipo = 'ecf');

    Porém não passa, sei que está faltando algo no meu SQL, mas a ideia é essa, dar o UPDATE somente nesses registros que vieram no meu SELECT com INNER JOIN.

    Agradeço a ajuda.

  10. poderia postar um trechindo do código de como você esta montando isso? pois se este cálculo representa uma coluna calculada em seu select o termo as valor deveria funcionar.

    Dênis isso que eu não estava entendendo, o porque de não estar funcionando como AS. Reescrevi o código e agora está pegando. Como não tenho muito experiência em programação, pensei estar errado. Mas não, o processo é esse mesmo.

    Obrigado.

  11. Pessoal queria a ajuda de vocês, estou precisando fazer uns updates e inserts em um banco de dados de um sistema e analisando no "olhômetro" e pela lógica dos nomes encontrei 2 tabelas onde ficam os lançamentos e detalhamentos dos lançamentos. Porém são mais de 500 tabelas e fico na incerteza de ter alterados todas as tbls necessárias.

    Bem queria saber se tem como agente ativar um MODE no mysql que ele fique gravando todos os UPDATES e INSERTS etc, uma espécie de logs, e ai no eu usaria a Aplicação e depois analisaria as tabelas que o mysql trabalhou.

    Alguém tem alguma ideia pra me ajudar?

  12. OK Dênis, muito obrigado, consegui a formatação como queria.

    TRUNCATE(ROUND(SUM((VALOR_ICMS*base_calculo)/100),2),31) as valor.

    Só queria mais uma ajuda, estou tentando "chamar" esse resultado na minha aplicação e pensei em usar o ' as valor ' para isso, só que estou tendo um erro dizendo que eu não possuo essa columa 'valor', e realmente não possuo.

    E agora? Como devo proceder? Tem como fazer isso sem ter que criar uma function que me retorne esse valor?

×
×
  • Criar Novo...