Ir para conteúdo
Fórum Script Brasil

Denis Courcy

Moderadores
  • Total de itens

    3.089
  • Registro em

  • Última visita

Posts postados por Denis Courcy

  1. Caramba, você explicou legal pra caramba, valeu mesmo, vo tentar fazer e qualquer coisa posto aqui de novo...

    Olha como ficou, utilizei o CONSTRAINT, é assim mesmo?

    ALTER TABLE `menu_sub_categoria`
      ADD CONSTRAINT `menu_sub_categoria_ibfk_1` FOREIGN KEY (`categoria`) REFERENCES `menu_categoria` (`codigo_id`) ON DELETE CASCADE ON UPDATE CASCADE;
    Minhas tabelas---------------------------------------------------------------------------------------------------------
    CREATE TABLE `menu_categoria` (
      `codigo_id` int(11) NOT NULL auto_increment,
      `categoria` varchar(35) NOT NULL,
      `loja` int(5) NOT NULL,
      PRIMARY KEY  (`codigo_id`),
      UNIQUE KEY `categoria` (`categoria`,`loja`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4;
    CREATE TABLE `menu_sub_categoria` (
      `codigo_id` int(11) NOT NULL auto_increment,
      `categoria` int(11) NOT NULL,
      `sub_categoria` varchar(150) NOT NULL,
      `loja` int(8) NOT NULL,
      `id_conteudo` int(2) NOT NULL,
      PRIMARY KEY  (`codigo_id`),
      UNIQUE KEY `categoria` (`categoria`,`sub_categoria`,`loja`,`id_conteudo`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8;

    Legal! é isso mesmo.

    Só um detalhe que não parece muito mas em tabela muito populadas pode gastar um espaço considerável. Observe seu código quando você usou `codigo_id` int(11) NOT NULL auto_increment,

    você poderia ter usado `codigo_id` int(10) unsigned NOT NULL auto_increment, já que seu autoincrement não vai trabalhar com números negativos. Usar tipo unsigned pata inteiros economiza o byte de sinal que os números não unsigned necessitam.

    1 byte parece pouco, mas em 100.000 registros serão 100.000 bytes a menos.

    att

    Denis Courcy

  2. Ola pessoal, formei meu servidor e esqueci do backup do MySQL, alguém sabe alguma solução?

    alguém sabe onde fica os dados? para tentar fazer um recover?

    abraços..

    :blink: :blink:

    Se seu SO for windows

    Desligue a maquina que teve o HD formatado acidentalmente e retire o HD

    Em outra máquina baixe da internet e instale um programa chamado undelete.

    coloque o HD formatado acidentalmente como slave desta maquina.

    Com o utilitário undelete procure pela pasta \mysql\data - se você está usando uma versão do mysql anterior a 4.1. se estiver usando versão acima, procure em \arquivos de programas\mysq\mysq 5\data

    recupere todos os arquivos desta pasta.

    Boa sorte.

    att

    Denis Courcy

  3. Galera, eu sou iniciante e gostaria de saber se estou fazendo certo e como solucionar minha dúvida.

    ---

    Caso eu venha excluir uma categoria, como fazer para todas as sub-categorias vinculadas a essa categoria excluida sejam excluidas também

    Oi, Kogima!

    Você tem três caminhos para solucionar este problema.

    O primeiro independe de versão ou engine (tipo de tabela) do Mysql.

    O Lado ruim é que se você estiver usando tabelas não transacionais tipo myisam e houver uma falha durante esta transação, então você ficará com tabelas inconsistentes.

    A técnica consiste em você deletar os dados da tabela filha e depois deletar os dados da tabela mãe.

    Exemplo: Sejam as tabelas Nota_Fiscal e Tabela Item_da_nota_fiscal. Para deletear os dados da nota fiscal de número 1 seria assim:

    DETELE FROM Item_da_nota_fiscal WHERE Numero_Nota = 1;
    DELETE FROM Nota_Fiscal WHERE Numero_Nota = 1;
    A segunda técnica você deverá estar usando a versão 4.1x ou superior (de preferência a versão 5.x) do MySQL com tabelas tipo Tansacionais INNODB ou MAXDB. Consiste em alterar a estrutura da tabela Item_da_nota_fiscal para a inclusão de constraints deste tipo:
    ALTER TABLE Item_da_nota_fiscal 
    ADD CONSTRAINT FK_Item_da_nota_fiscal FOREIGN KEY(Numero_Nota)  REFERENCES Nota_Fiscal (Numero_Nota) ON DELETE CASCADE ON UPDATE CASCADE;
    Constraint permite que uma exclusão ou atualização na tabela pai se reflita na tabela filha. Assim o comando de delete só se aplicaria a tabela pai. Outra vantagem deste tipo de comando é que você não conseguirá incluir nenhum item na tabela filha sem que antes você inclua na tabela pai. Ou seja, Tem que haver um registro na tabela pai para que haja um registro na tabela filha. O comando de deleção seria:
    DELETE FROM Nota_Fiscal WHERE Numero_Nota = 1;

    A terceira forma novamente independe de tipo de tabela mas depende de você estar usando uma versão 5.x do MySQL. Consiste em utilizar triggers.

    Triggers são gatilhos que são disparados quando um evento de inclusão, alteração ou exclusão ocorre em uma tabela do banco de dados.

    Então, você criaria uma trigger conforme eu mencionei no tópico http://scriptbrasil.com.br/forum/index.php?showtopic=109864, adaptando as suas necessidades e, depois, você usaria somente o comando de deletar na tabela pai, conforme exemplo 2.

    É só. Tente fazer e havendo dúvidas relate novamente.

    Quanto a estruturação de suas tabelas, sugiro que você leia sobre normalização de banco de dados e havendo dúvidas abra novo tópico para discutirmos a respeito.

    att

    Denis Courcy

  4. bem, meu problema é o seguinte: preciso fazer uma busca em uma tabela em que o campo "block" deve ser igual a "YES" e o campo "nome" não pode conter "cancelado".

    exemplo:

    nome-------------------------------block---------

    José Maria (cancelado)________YES

    Maria José da Silva___________YES

    Maria João (cancelado)________NO

    quando efetuar a busca me retornaria somente o "José Maria (cancelado)", ou seja, tenho q fazer o contrário do like, e pegar somente os q não contem o termo "cancelado". talves até tenha como fazer usando like, mas não sei como é.

    vlw

    Oi, etcho!

    Tente SELECT * FROM tabela Where NOT nome LIKE "%cancelado%" AND block = "YES";

    att

    Denis Courcy

  5. Olá a todos do fórum!

    Gostaria de saber se alguém conhece uma forma de conectar simultâneamente dois BD no mesmo servidor MySQL ao mesmo tempo.

    ...

    alguém aqui do fórum tem alguma idéia de isso ser feito??? :ph34r:

    Oi,osgregs!

    Vou utilizar o usuário "my_user" de seu exemplo. Se este usuário possuir direito de acesso(GRANT) a todas as tabelas e todos os bancos (equivalente ao root, mas somente para os comandos INSERT,

    DELETE, UPDATE e SELECT) você só necessita apontar o banco de dados em seus comandos DML.

    Por exemplo:

    Tenho os bancos BD_1 e BD2.

    No BD_1, tenho as tabelas A_1 e A_2 e no BD_2 tenho as tabelas B_1 e B_2.

    Se estou no banco BD_1 e desejo utilizar tabelas do BD_2 em um select, faço assim.

    SELECT * FROM BD_2.B_1;

    Se preciso relacionar tabelas do BD_1 com tabelas do BD_2 faço assim:

    SELECT * FROM BD_1.A_1 a

    INNER JOIN BD_2.B_1 b ON a.campo1 = b.campo1;

    att

    Denis Courcy

  6. Amigo,

    Eu pesquisei pra caramba e não consegui fazer um simples IF. Utilizei os operadores de controle de fluxo, mas não consegui.

    ...

    Eu não achei a sintaxe do if no mysql, mas vi um artigo que tem uma funcao que usa essa sintaxe tradicional. Como fazer esse if?

    Oi, Giuliano!

    A referência a controles de fluxos está, no manual da versão 4.1x, no capítulo 11.1.9 - Flow Control Constructs; na versão 5.0x, está no catítulo 17.2.10. Abaixo coloco a sintaxe correta.

    Outra coisa, Suponho que "quaAco" e "empresa" sejam atributos(campos) da tabela "compra_acoes". Pois se não forem, então a lógica está errada, também.

    Código:

    DELIMITER |
        CREATE TRIGGER atualiza_est_acoes AFTER UPDATE ON compra_acoes
        FOR EACH ROW BEGIN
           IF old.empresa <> new.empresa or old.quaAco <> new.quaAco THEN
              UPDATE estoque_acoes set quantidade = quantidade - old.quaAco  
              WHERE empresa = old.empresa;
              UPDATE estoque_acoes set quantidade = quantidade + new.quaAco 
              WHERE empresa = new.empresa;
           END IF;           
       END;
    |
    DELIMITER;

    Nota: Procure, neste forum, o tópico "Busca Por Fonemas" de minha autoria e veja a sintaxe de diversos "operadores de controle de fluxo".

    Att

    Denis Courcy

  7. phpmyadmin, na verdade não foi eu quem fez essa tranf. a pessoa que o fez,simplesmente exportou e importou dados, mas como você disse não deu atenção ao caracter set e ai fico assim, eu tentei so mudar para latin1. mas não deu certo..acho que vo ter que exportar isso, deletar esse bd,criar outro e importar..e torcer..porque se num der certo crir tudo de novo...num é isso??

    Vlw velho..abraço!!!

    É isso mesmo.

  8. Opa..foi mal a demora em responder..aqui li o manual e coloquei no BD o collation latin1, mais continua com os símbolos..alguma idéia?

    Abraço!!

    Você disse inicialmente

    eu fiz uma transerência de servidor e quando fui passar o bd substituiu tudo quanto é acento por simbolos

    Que SO (sist operacional) você tinha antes e qual está agora?

    Como você fez a transferência de arquivos do BD antigo para o novo?

    Motivo das perguntas: Estou tentando avaliar se não está faltando informação.

    att

    Denis Courcy

  9. Eu queria saber como se faz um contador de visitas unica (por ip), eu preucurei pela internet e não consegui achar muito coisa, alguém sabe como se faz, ou tem um tutorial?

    E tambem um sistema de user online tipo usuarios on/max de usuarios.

    vlews

    Forum errado.

    att Denis Courcy

  10. só que preciso usar sum nesta coluna sum(valor * count(c.id_lancamento))

    e não estou conseguindo, surge o erro invalid use of group function.

    Dedusindo que o erro esta no group by coloquei assim

    group by a.nome, c.id_lancamento

    e continua o erro, alguém pode me ajudar?

    Desde já agradeço T +

    Olá desconhecido!

    Você não vai conseguir fazer o que deseja deste jeito. O GROUP BY by está reclamando do uso da função agregadora COUNT dentro de outra função agregadora SUM. Isto não é permitido.

    A solução para este caso passa por alguns passos:

    1 criar uma tabela temporaria e carregando para ela os valores de um select que conte o que você deseja;

    2 dar um select na tabela temporária somando os dados desejados e

    4 destruir a tabela temporária.

    Aqui no forum, na mensagem http://scriptbrasil.com.br/forum/index.php?showtopic=109658 eu expliquei como fazer isto.

    Pesquise, faça e, havendo dúvidas, coloque de novo no forum para avaliarmos.

    att

    Denis Courcy

  11. Olá pessoal!

    Estou desenvolvendo uma aplicação em que se tem que manter um estoque. Então, ao se realizar um cadastro de compra de soja por exemplo, eu vou e adiciono a quantidade no estoque. Mas isso está sendo feito em instruções SQL separadas e independentes, onde adiciono a compra de soja, e depois atualizo o estoque. Mas dessa forma tem pequena chance, mas tem, de gerar uma inconsistência, no caso de acontecer algum problema com a primeira instrução e executar a segunda. Por exemplo, se acabar a energia quando tiver executando a segunda?! Como resolver esse problema?

    Tem como realizar um insert e um update na mesma instrução? Pois dessa maneira, de acordo com a propriedade ACID, resolveria o problema, ou realizaria tudo ou nada... Qual sugestão para esse problema? Obrigado!

    Oi, Giuliano!

    Utilize uma trigger parecida com esta que uso para trilha de auditoria:

    DELIMITER $$;
    
    DROP TRIGGER `meubancodedados`.`trUPDLogCartaoDeCredito`$$
    
    create trigger `trUPDLogCartaoDeCredito` BEFORE UPDATE on `cartaodecredito` 
    for each row BEGIN
       insert into trilha_audit.cartaodecredito (Acao, CartaoID, NM_Cartao, Taxa, VL_Minimo, Incluido_EM,
        Incluido_POR, Alterado_EM, Alterado_POR) 
       values ('A', OLD.CartaoID, OLD.NM_Cartao, OLD.Taxa, OLD.VL_Minimo, OLD.Incluido_EM,
        OLD.Incluido_POR, OLD.Alterado_EM, OLD.Alterado_POR);
    END;
    $$
    
    DROP TRIGGER `meubancodedados`.`trDELLogCartaoDeCredito`$$
    
    create trigger `trDELLogCartaoDeCredito` BEFORE DELETE on `cartaodecredito` 
    for each row BEGIN
       insert into trilha_audit.cartaodecredito (Acao, CartaoID, NM_Cartao, Taxa, VL_Minimo, Incluido_EM,
        Incluido_POR, Alterado_EM, Alterado_POR) 
       values ('D', OLD.CartaoID, OLD.NM_Cartao, OLD.Taxa, OLD.VL_Minimo, OLD.Incluido_EM,
        OLD.Incluido_POR, OLD.Alterado_EM, OLD.Alterado_POR);
    END;
    $$
    
    DELIMITER;$$

    Estas instruções ocorrem momento antes de atualizar o banco principal "meubancodedados". O banco "trilha_audit" possui as mesmas tabelas (com as mesmas estruturas) do banco original (não todas. Somente as que necessito auditar).

    Como a operação é em bases transacionais, tipo innodb, e dentro de uma transação, então se não gravar no banco original, esta é desfeita, também.

    Isto não vale para quem usa base não transacional, como myisam, por exemplo.

    No seu caso, substitua BEFORE UPDATE por BEFORE INSERT

    Para saber mais sobre triggers leia http://dev.mysql.com/doc/refman/5.1/en/triggers.html.

    att

    Denis Courcy

  12. Eu preciso fazer um while que o update só irá terminar quando o valor de value for igual a 0 .

    Necessito também declarar uma variavel que será incrementada e inserida no banco .

    é possivel fazer um if onde se a chave existir eu faço um update e se não faço um insert ??

    Agradeço desde já

    Raphael Germano Boschiero

    Oi, Raphael!

    Utilize uma stored procedure e você terá todos estes recursos.

    att

    Denis Courcy

  13. é este erro mesmo errcode: 2013, error: Lost connection to MySQL server during query.

    no arquivo.err não tem nada disto depois que da o erro.

    e este erro da uns 3 mim depois que conecta.

    Então de novo houve mudanças nas configurações originais.

    Leia no manual do mysql como ajustar o valor da variavel wait_timeout para 28800 que é o valor padrão dela.

    (Não lembro de cabeça como se faz e não tenho o mysql aqui no trabalho.)

    Depois reporte sucesso ou fracasso.

    att

    Denis Courcy

  14. O Erro parou no server.

    So que no client esta dando Lost connection.

    O erro reportado é "errcode: 2013, error: Lost connection to MySQL server during query"?

    Se sim,

    Dê uma olhada no log de erro do MySQL e em suas configurações. Este erro acontece em alguns casos quando há um timeout da conexão. Isto é, conexões idle são interrompidas pelo MySQL após um wait_timeout, neste caso, quando o client envia uma requisição após este evento, a mensagem é exibida.

    O Log de erro (arquivo.err no diretório de dados), conterá mais informações que permitirão depurar melhor o problema.

    Se Não informe o erro, código do erro e tudo o que puder para ajudar a analisar.

    leia http://dev.mysql.com/doc/refman/5.0/en/gone-away.html

    att

    Denis Courcy

  15. Bom dia.

    Tenho um servidor com sistema operacional Red Hat 9 onde roda Mysql 3.23.54.

    Já estou com o aquivo .rpm da versão 4.22.

    Gostaria de saber como proceder com a atualização.

    Obrigado

    Oi, Mário!

    O modo mais limpo de realizar esta operação é:

    1 fazer o backup do(s) banco(s) atual(is) com mysqldump.

    2 parar o serviço do mysql

    3 desinstalar a versão atual

    4 instalar a nova versao

    5 iniciar o serviço do mysql

    6 recuperar o backup.

    O manual do mysql 4.1 em portugês informa como proceder. Dê uma olhada e informe as dúvidas.

    Nota: sobre backup e restauração de backup vide mensagem http://scriptbrasil.com.br/forum/index.php?showtopic=109791 aqui no forum.

    att

    Denis Courcy

  16. Bom dia pessoal.

    estou com um mysql 5.0.22 com um problema.

    no log do erro mostra isto:

    071026 12:34:04 [Warning] MySql: Forcing close of thread 3 user: 'usuario'

    E o cliente que esta loga é desconectado.

    alguém sabe o que pode ser?

    Obrigado

    Oi, Ediglei!

    O escrito abaixo é uma tradução de um original em inglês para este tipo de problema se você estiver usando Innodb. Se seu padrão é MyIsam, então provavelmente suas tabelas estão corrompidas e voce necessitará utilizar o myisamchk para recuperá-las.

    Avalie e informe sucesso ou fracasso.

    Está parecendo que alguém editou seu arquivo my.cnf (my.ini no windows) e mudou a

    variável innodb_log_file_size sem parar e reiniciar o mysql ou deletar os arquivos de log antigos.

    Assumindo que o servidor teve um shut down sem problemas, você deverá deletar os arquivos de log atuais e dar um restart no seu banco mysql.

    Se o servidor falhou (crash) você deverá setar a variável innodb_log_file_size de volta a 128M, iniciar e parar o servidor ( mysqld ) para dar um flush em qualquer transação pendente, baixar a variavel innodb_log_file_size para 64M, deletar os logfiles, e reiniciar o mysql.

    att

    Denis Courcy

  17. estou com um problema, estava testando o sql quando pedi para que meus amigos tentacem entrar, eles n conseguiam + eu s, tentei de tudo mas n consegui é nada...alguém poderia me ajudar por favor......

    Se a mensagem que você está recebendo é: Access denied for user: '@unknown' to database mysql e se você está usando o Mysql 5.x, então Crie o usuário root @%, com todos os privilégios, que por default não criado.

    Se não for isso, informe que tipo de mensagem está recebendo.

    att

    Denis Courcy

  18. CREATE TABLE `clientes` (
      `nome` int(11) NOT NULL auto_increment,
      `inicio` varchar(255) NOT NULL default '',
      `vencimento` varchar(255) NOT NULL default '',
      PRIMARY KEY  (`nome`)
    ) TYPE=MyISAM
    Oi roxzin! Observe o create de sua tabela e o select abaixo e responda quem é campobusca e quem é campo?
    if(!empty($_POST['[b]variaveldebusca[/b]'])){ //deixe assim pois é melhor para testar se a variavel tem valor ou não
        $categoria =  $_POST['[b]variaveldebusca[/b]'];
    $sel_cliente = "SELECT * FROM clientes WHERE campobusca= '$variaelde busca";
        $qr_cliente=mysql_query($sel_cliente);
    }
    else {
        $sel_cliente="SELECT * from clientes order by campo desc";
        $qr_cliente=mysql_query($sel_cliente);
    }

    Se você percebeu não há atributos campobusca e campo em sua tabela. por isso o erro.

    att

    Denis Courcy

  19. Pessoal estou começando em Mysql e PHP e queria saber:

    1 - como faço para migrar um BD Mysql do windows XP para o Linux Mandriva ?

    2 - Como faço um backup de um BD Mysql?

    Obrigado

    Oi, Ricardo!

    A primeira e segunda perguntas serão respondidas em conjunto.

    1 No Windows utilize o mysqldump para fazer o backup. É a ferramenta mais segura para fazer backup. Principalmente entre plataformas.

    mysqldump --opt --triggers --port=3306 --user=root --result-file=backup.sql --databases meubancodedados

    Note que estou usando --result-file=backup.sql em vez de >backup.sql. Isto porque você necessita obter o padrão correto para mudança de linha que no DOS/WINDOWS é /r/n e no LINUX/UNIX é /n somente.

    A restauração do backup tanto no windows como no linux quanto é do mesmo modo.

    entre no mysql pela linha de comando a seguir.

    mysql -u root -p

    onde -p é a password do root.

    No prompt do mysql digite

    source backup.sql

    aguarde o termino do backup e encerre a sessão mysql com "quit".

    É só isso.

    att

    Denis Courcy

  20. Pessoal,

    Estou com problemas ao excluir ou alterar um registro de uma tabela no MySql. Ao editar o registro e tentar gravar o MySql fornece o seguinte erro: "Error while posting updates". Quando tento excluir um registro e dou commit, o registro volta a ser visualizado.

    Algume poode me dar alguma dica de como resolver esse problema?

    Abraços

    Carlos

    Que tipo de ferramente (linguagem, etc) você está usando para manipular estes dados?

    Esta não é uma mensagem padrão do mysql.

    att

    Denis Courcy

  21. só que o problema ...que por redução de custos...tenho que utilizar esta ferramenta na faculdade que leciono...

    então é uma limitação da ferramenta mesmo...não tem nada haver com com o MySql???

    Não. Não tem nada haver com MySQL.

    Uso tabelas complexas com especialização/generalização, tabelas de domínios, agregações e outras técnicas e meu MySQL responde direitinho ao que propus em meu modelo.

    Mas o DBDesigner também vai te dar tudo o que você quer. Só não vai exibir graficamente do jeito que você gostaria. Pode usá-lo sem susto. É uma boa ferramenta.

    att

    Denis Courcy

  22. Uma Nova Solução

    Oi Fernando,

    Nada como uma boa noite de sono para melhorar os pensamentos.

    Achei uma nova solução, mais inteligente que a primeira, pois não haverá a necessidade de usar uma tabela temporária e, conseqüentemente, diminuirá o tempo de processamento.

    Esta solução passa pela criação de uma Stored Function (se é que podemos chamar assim).

    Então vamos lá:

    Criando a Função

    delimiter $$
    CREATE FUNCTION MinhaFuncao (cod_cliente CHAR(50)) RETURNS CHAR(50) DETERMINISTIC
    BEGIN
       DECLARE MeuSQL CHAR(50);
    
       IF cod_cliente >= 500000
           SET MeuSQL  = ‘SELECT RazaoSocial FROM PA0022 WHERE Codigo = cod_cliente’;
       ELSE
           SET MeuSQL  = ‘SELECT RazaoSocial FROM PA0042 WHERE Codigo = cod_cliente’;
       END IF;
       
       PREPARE TESTE FROM @MeuSQL;
       EXECUTE TESTE;
    
       RETURN RazaoSocial;
    END $$
    Use a função assim:
    SELECT DATE_FORMAT(DtMovimento, '%d/%m/%y') DATA, CodOperacao 'T.O.', NDocumento NF, Transacao TR,CodCliFornec 'CLI/FORN', MinhaFuncao(CodCliFornec) 'RAZAO SOCIAL',
    FORMAT(preço, 2) preço, FORMAT(CtMedPonderado, 2) 'C.M.P.', FORMAT(QtMovimentada, 3) QTD, 
    FORMAT(Saldo, 3) SALDO
    FROM PA0111 M WHERE Codigo = '$codigo' AND `NLocal` = '$local';

    Testa e informe o resultado.

    att.

    Denis Courcy

  23. DENIS É POSSIVEL Q PELO phpMyAdmin FUNCIONAR O SCRIPT E POR EXEMPLO POR UM PG PHP NÃO ?

    Sim. É possivel. Não Conheco o PHP ainda. Mas, no Delphi, você só pode passar uma instrução SQL por vez.

    Tente passar uma instrução sql por vez. Se o PHP continuar chiando, crie uma tabela ioiô (temporária e física no banco de dados) somente para este tipo de ação.

    att

    Denis Courcy

    Até amanhã.

  24. O DENIS ...ESKECE...DEU CERTO SIM, MAS DESSE JEITO AQ:

    CREATE TEMPORARY TABLE TMP

    SELECT Codigo CODCF, RazaoSocial FROM PA0022;

    INSERT INTO TMP

    SELECT Codigo, RazaoSocial FROM PA0042;

    SELECT DATE_FORMAT(DtMovimento, '%d/%m/%y') DATA, CodOperacao 'T.O.', NDocumento NF, Transacao TR,

    M.CodCliFornec 'CLI/FORN', TMP.RazaoSocial 'RAZAO SOCIAL',

    FORMAT(preço,2) preço, FORMAT(CtMedPonderado,2) 'C.M.P.', FORMAT(QtMovimentada,3) QTD, FORMAT(Saldo,3) SALDO

    FROM PA0111 M

    INNER JOIN TMP ON TMP.CODCF = M.CodCliFornec

    WHERE Codigo = 'AGAGIP SINT 24x1 1' AND NLocal = '1';

    VALEU VEIO !! OBRIGADO MESMO .... VAI SER DE GRANDE AJUDA AQ PRA MIM ...

    Ok. Mas pense em uma solução melhor na organização de seu BD, pois este modo que fizemos tem um problema de performance que crescerá conforme crescer sua base de dados. Pois para a montagem da tabela temporária há a necessidade de varrer as outras duas tabelas.

    att

    Denis Courcy

×
×
  • Criar Novo...