-
Posts
2,514 -
Joined
-
Last visited
-
Days Won
19
Posts posted by evandro
-
-
Olá,
O problema é o subselect, que também se faz presente na sugestão do João. Sugiro criar uma tabela temporária, criar um índice nesta tabela e relacionar (join) com a principal.
Seria algo mais ou menos assim:
create TEMPORARY table temp SELECT MAX(pe.data) AS data, pe.produto FROM pedido as pe WHERE pe.tipo='1' and data < '2015-11-30' GROUP BY pe.produto ORDER BY pe.produto; CREATE INDEX produto ON temp (produto); SELECT temp.data, prod.produto, prod.descricao FROM produto as prod LEFT JOIN temp ON prod.produto = temp.codigo;
-
-
-
-
Olá,
Verifique se na máquina que dá o problema não tem instalado programa do BB ou da Caixa. Se tiver é isto. Eles instalam um sistema de segurança que faz a maior m...
-
Olá,
Utilizo sem problemas também.
-
Olá,
Não falei que o "Nanico" é bom nisso?
-
-
-
Olá,
Se vc usar DBF até que fica legal mas se usar banco de dados aborte a idéia...Discordo totalmente. O Alex2002 desenvolveu uma rotina que faz esta busca mais rápido do que se fosse DBF (argh!). Creio até que ele já postou esta rotina por aqui.
-
Olá,
Verifique se tem índice do campo CODVEN, tabela VENDAS. Na criação das tabelas temporárias não precisa do GROUP BY.
-
Olá,
pois tem a possibilidade de se particionar a TABELA por ano dentro de uma DDLIsto pode ser feito no MySql também.
-
Olá,
Altere a linha para o modelo abaixo.
cSql+=" marg1 = IF(custo>0, ("+Any2Sql(cVlrAtu)+"-custo)*100/custo), 0 ) "
-
Olá,
Interessante que do jeito que postei gerou normalmente. Só mudei o BD, a tabela e os campos. Não retorna erro?
-
Olá,
Tente assim:
function tr_etiqueta_g() cSql:='USE empresoft;' SqlExecute(cSql) cSql:='DROP TRIGGER tr_etiqueta_g;' SqlExecute(cSql) cSql:='CREATE' cSql+=' TRIGGER tr_etiqueta_g' cSql+=' AFTER' cSql+=' INSERT' cSql+=' ON altepre' cSql+=' FOR EACH ROW BEGIN' cSql+=' INSERT INTO etique_gandola ( produto,preco,conferido )' cSql+=' VALUES ( new.codigo, new.vlratu, "N" ) ;' cSql+=' END;' cSql+='' SqlExecute(cSql) return .t.
-
Olá,
Faça uma rotina que verifique a existência. Caso não exista, crie.
aSql := SqlArray( 'SHOW TRIGGERS FROM empresoft ' ) for i := 1 to len( aTriggers ) nAchou:=AAscan( aSql, lower(aTriggers[i]) ) if nAchou=0 if !CriaTrigger( aTriggers[i] ) MsgAlert( 'problema', 'Problema' ) endif endif next return nil static function CriaTrigger( cTrigger ) if cTrigger='tr_etiqueta_g' cSql:='USE empresoft;' cSql+='' cSql+='DROP TRIGGER tr_etiqueta_g;' cSql+='' cSql+='CREATE' cSql+=' TRIGGER tr_etiqueta_g' cSql+=' AFTER' cSql+=' INSERT' cSql+=' ON altepre' cSql+=' FOR EACH ROW BEGIN' cSql+=' INSERT INTO etique_gandola ( produto,preco,conferido )' cSql+=' VALUES ( new.codigo, new.vlratu, "N" ) ;' cSql+=' END;' cSql+='' SqlExecute(cSql) endif return .t.
-
Olá,
Você sabe das nossas dificuldades com a escassez de pessoal, portanto nem preciso falar que apoio integralmente.
-
Olá,
Seria algo assim:
create temporary table temp1 SELECT vda.CODVEN, SUM(vda.QTDVEN) AS TOTAL_VENDIDO, COUNT(*) AS Num_Pedido FROM vendas AS vda where vda.COD_PRODUTO = 1 GROUP BY vda.CODVEN; create index temp1 on temp1 ( codven ) create temporary table temp2 comp.COD_PRODUTO, SUM(comp.QTDE_COMPRADA) AS TOTAL_COMPRADO, COUNT(*) AS Num_comprado from compras as comp where comp.COD_PRODUTO = 1 GROUP BY vda.CODVEN; create index temp2 on temp2 ( codven ) SELECT vda.CODVEN, vda.TOTAL_VENDIDO, vda.Num_Pedido, comp.COD_PRODUTO, comp.TOTAL_COMPRADO, comp.Num_comprado, comp.QTDE_COMPRADA-vda.QTDVEN AS SALDO FROM temp1 AS vda LEFT JOIN temp2 AS comp ON vda.CODVEN = comp.COD_PRODUTO
-
Olá,
Crie uma tabela temporária das vendas e outra das compras com os filtros que forem necessários.
crie índice pelo código do produto em ambas. Finalmente faça o select com o join nas tabelas resultantes.
-
Olá,
Fiz o AR que imprime 2 por página, que deve ser o que você quer. No formulário coloquei apenas um MasterData da altura de meia página com todas as informações no MasterData. Funciona perfeitamente.
-
Olá,
Primeiro agradecer pela alcunha de "Pilantra" hehehehe.
É claro que fazer um Encontro em Petrópolis, Curvelo ou outra cidade do interior tem inúmeras vantagens, teremos o maior prazer em organizar, mas tem uma desvantagem que mata tudo: deslocamento, logística. É muito mais complicado do que se for em SP ( que tem a maioria do fivewiners ) ou BH (que tem os mais presentes nos Encontros).
O tema, muito bem colocado pelo Marcelo, deve ser os rumos a adotar para Web e Mobile. Os outros, citados anteriormente, são específicos para um ramo de negócio. Pode até ser abordado também, claro, mas vejo que o primordial é traçarmos um caminho a seguir, orientarmos para o futuro, que já é presente.
E nem preciso reafirmar que sendo em Petrópolis, Rio, Curvelo, BH, SP, Guarulhos ou onde for, estarei presente.
-
-
Olá,
Marcelo, vai ser na Rua Teresa, 1515 mesmo???Você acha que o Marcelo vai fazer um evento destes na mega loja da Rua Teresa? Nada disto. Tem outros locais muito mais apropriados. Até a casa dele deve comportar. Ele morava numa mansão num sítio, mudou para outra melhor. Imagine esta nova! Além disto tem vários locais bacanas.
-
Olá,
Já houve Encontro em Curvelo. Alguém já soube de algum em Petrópolis?
Qual a melhor solução para sair do DBF
in Programação
Posted
Olá,
Dá para usar os comandos DBF, só que é um quebra-galho. O certo é você "brincar" bastante com o SGDB escolhido ( recomendo MySql ) antes de migrar. Depois de migrar teste todas as rotinas para ver se deu algum problema e ver também questão de tempo de processamento. Tem rotina que vai ficar mais rápida e outras vão ficar mais demoradas. Priorize a conversão das rotinas que ficarão mais lentas e/ou das que são mais críticas.