Wilke1 0 Denunciar post Postado Setembro 10, 2008 ola pessoal eo seguinte estou querendo selecionar somente os produtos com pmz diferenciado por loja acima de 10 % mas não estou conseguindo fazer ,voces tem alguma ideia ,eu estou fazendo assim, mas ela traz os pmz de outra lojas que estão certas .sendo que eu quero que traga somente os que estão diferentes. SELECT CD_PRODUTO,CD_LOJA,VL_CUSTO_PMZ FROM TB_PRODUTO_LOJA WHERE CD_PRODUTO LIKE'01794005' AND CD_LOJA IN('001','020','022','023','026','027','029','034') AND VL_CUSTO_PMZ <> (VL_CUSTO_PMZ * 1.10) :wacko: Compartilhar este post Link para o post Compartilhar em outros sites
Andre Renato 0 Denunciar post Postado Setembro 12, 2008 Não consegui entender exatamente a finalidade do seu select. Poderia explicar melhor? Compartilhar este post Link para o post Compartilhar em outros sites
Wilke1 0 Denunciar post Postado Setembro 12, 2008 Não consegui entender exatamente a finalidade do seu select. Poderia explicar melhor? ola amigo eo seguinte essa select ela traz vl_cuto_pmz ,mas eu quero que aparece somente os que estão diferentes ,sem repertir mesmo sendo loja diferentes . Compartilhar este post Link para o post Compartilhar em outros sites
Wilke1 0 Denunciar post Postado Setembro 12, 2008 Não consegui entender exatamente a finalidade do seu select. Poderia explicar melhor? ola amigo eo seguinte essa select ela traz vl_cuto_pmz ,mas eu quero que aparece somente os que estão diferentes ,sem repertir mesmo sendo loja diferentes . amigo seria mas ou menos assim query2.Close; query2.ParamByName('cd_produto').AsString:=edit1.Text; query2.Open; qryteste.Close; qryteste.ParamByName('cod_produto').AsString:=edit1.Text; qryteste.Open; vl_pmz:= qryteste.FieldByName('vl_custo_pmz').AsString; while not query2.Eof do begin vl_pmz1:= query2.FieldByName('vl_custo_pmz').AsString; if vl_pmz <> vl_pmz1 then begin listbox1.Items.Add(query2.FieldByName('vl_custo_pmz').AsString); end; Query2.Next; end; Compartilhar este post Link para o post Compartilhar em outros sites
Andre Renato 0 Denunciar post Postado Setembro 12, 2008 Observe um fato: AND VL_CUSTO_PMZ <> (VL_CUSTO_PMZ * 1.10) Você está comparando um valor existente na sua tabela com ele mesmo multiplicado 1.10. Ou seja, o que está na sua tabela sempre vai ser diferente e o select vai retrornar todos eles mesmo. Nesse caso você teria que utilizar um outro valor ou campo para comparação e consequentemente seu select vai funcionar de acordo com o que você está esperando. Compartilhar este post Link para o post Compartilhar em outros sites
Wilke1 0 Denunciar post Postado Setembro 12, 2008 Observe um fato: AND VL_CUSTO_PMZ <> (VL_CUSTO_PMZ * 1.10) Você está comparando um valor existente na sua tabela com ele mesmo multiplicado 1.10. Ou seja, o que está na sua tabela sempre vai ser diferente e o select vai retrornar todos eles mesmo. Nesse caso você teria que utilizar um outro valor ou campo para comparação e consequentemente seu select vai funcionar de acordo com o que você está esperando. ISSO EU PERCEBI,EU MUDEI PARA OUTRO CAMPO,E MESMO ASSIM ELE TRAZ REPETIDOSEX: CD_LOJA CD_PRODUTO VL_CUSTO_PMZ 0001 1895 1.56 020 1895 1.56 022 1895 1.86 EU QUERIA QUE SOMENTE APARECESE SOMENTE UMA VEZ O VALOR DO CUSTO_PMZ 1.56 Compartilhar este post Link para o post Compartilhar em outros sites
Andre Renato 0 Denunciar post Postado Setembro 12, 2008 Poste o select alterado pra darmos uma olhada. Compartilhar este post Link para o post Compartilhar em outros sites
Wilke1 0 Denunciar post Postado Setembro 12, 2008 Poste o select alterado pra darmos uma olhada. AMIGOS SERIA ESSA SELECT SELECT CD_LOJA,CD_PRODUTO,VL_CUSTO_PMZ FROM TB_PRODUTO_LOJA PL WHERE PL.CD_LOJA IN('001','020','022','023','026','027','029','034') AND PL.CD_PRODUTO='00189005' Compartilhar este post Link para o post Compartilhar em outros sites
Wilke1 0 Denunciar post Postado Setembro 12, 2008 Poste o select alterado pra darmos uma olhada. AMIGOS SERIA ESSA SELECT SELECT CD_LOJA,CD_PRODUTO,VL_CUSTO_PMZ FROM TB_PRODUTO_LOJA PL WHERE PL.CD_LOJA IN('001','020','022','023','026','027','029','034') AND PL.CD_PRODUTO='00189005' SELECT PL.CD_LOJA,PL.CD_PRODUTO,PL.VL_CUSTO_PMZFROM TB_PRODUTO_LOJA PL,TB_LUCRO LC WHERE PL.CD_LOJA IN('001','020','022','023','026','027','029','034') AND PL.CD_PRODUTO='00189005' AND PL.CD_PRODUTO=LC.CD_PRODUTO AND PL.VL_CUSTO_PMZ <> LC.VL_CUSTO_PMZ) AND PL.CD_LOJA=LC.CD_LOJA AND LC.DT_VENDA=FN_CONV_DATA('10/09/2008') Compartilhar este post Link para o post Compartilhar em outros sites
Andre Renato 0 Denunciar post Postado Setembro 12, 2008 Pelo que percebi ele está retornando mais de um pelo fato de o produto existir em mais de uma loja. Compartilhar este post Link para o post Compartilhar em outros sites
Wilke1 0 Denunciar post Postado Setembro 12, 2008 Pelo que percebi ele está retornando mais de um pelo fato de o produto existir em mais de uma loja.ISSO MESMO Compartilhar este post Link para o post Compartilhar em outros sites
Wilke1 0 Denunciar post Postado Setembro 12, 2008 Pelo que percebi ele está retornando mais de um pelo fato de o produto existir em mais de uma loja.ISSO MESMO amigo eu fiz assim,mas ainda continua trazendo os vl_custo_pmz repetidos entre lojas qryteste.close; query1.close; query1.open; qryteste.open; query1.first; while not query1.eof do begin vvlpmz:= query1.fieldbyname('vl_custo_pmz').AsString; qryteste.First; while not qryteste.eof do begin if vvlpmz <> qryteste.fieldbyname('vl_custo_pmz').AsString then begin listbox1.Items.Add(qryteste.fieldbyname('vl_custo_pmz').AsString); BREAK; end; qryteste.Next; end; vvlpmz:=''; query1.next; end; Compartilhar este post Link para o post Compartilhar em outros sites
Wilke1 0 Denunciar post Postado Setembro 12, 2008 Pelo que percebi ele está retornando mais de um pelo fato de o produto existir em mais de uma loja.ISSO MESMO amigo eu fiz assim,mas ainda continua trazendo os vl_custo_pmz repetidos entre lojas qryteste.close; query1.close; query1.open; qryteste.open; query1.first; while not query1.eof do begin vvlpmz:= query1.fieldbyname('vl_custo_pmz').AsString; qryteste.First; while not qryteste.eof do begin if vvlpmz <> qryteste.fieldbyname('vl_custo_pmz').AsString then begin listbox1.Items.Add(qryteste.fieldbyname('vl_custo_pmz').AsString); BREAK; end; qryteste.Next; end; vvlpmz:=''; query1.next; end; RESOLVIDO var vvlpmz :real; vcdloja:integer; vcount :integer; vqtlja :integer; vlojas :array[1..12]of string; begin vcdloja:= 0; vvlpmz := 0; vcount := 0; vqtlja := 0; qryvlr1.close; qryvlr2.close; qryvlr1.open; qryvlr2.open; vqtlja:= qryvlr1.recordcount; qryvlr1.first; while not qryvlr1.eof do begin vcdloja:= vcdloja + 1; vvlpmz := qryvlr1.fieldbyname('vl_custo_pmz').value; qryvlr2.first; while not qryvlr2.eof do begin if vvlpmz <> qryvlr2.fieldbyname('vl_custo_pmz').value then vcount:= vcount + 1; qryvlr2.next; end; if vcount = vqtlja -1 then begin qryachavldiferente.close; qryachavldiferente.parambyname('vl_custo_pmz_').value:= vvlpmz; qryachavldiferente.open; vlojas[vcdloja]:= qryachavldiferente.fieldbyname('cd_loja').asstring; end; vvlpmz := 0; vcount := 0; qryvlr1.next; end; qryresultado.close; qryresultado.sql.clear; qryresultado.sql.add('select cd_loja, round(vl_custo_pmz,3)vl_custo_pmz'); qryresultado.sql.add(' from tb_produto_loja'); qryresultado.sql.add(' where cd_produto = ''00189005'' and'); qryresultado.sql.add(' cd_loja in(:cdloja1, :cdloja2, :cdloja3, :cdloja4, :cdloja5, :cdloja6, :cdloja7, :cdloja8, :cdloja9, :cdloja10, :cdloja11, :cdloja12)'); qryresultado.parambyname('cdloja1' ).asstring := vlojas[1] ; qryresultado.parambyname('cdloja2' ).asstring := vlojas[2] ; qryresultado.parambyname('cdloja3' ).asstring := vlojas[3] ; qryresultado.parambyname('cdloja4' ).asstring := vlojas[4] ; qryresultado.parambyname('cdloja5' ).asstring := vlojas[5] ; qryresultado.parambyname('cdloja6' ).asstring := vlojas[6] ; qryresultado.parambyname('cdloja7' ).asstring := vlojas[7] ; qryresultado.parambyname('cdloja8' ).asstring := vlojas[8] ; qryresultado.parambyname('cdloja9' ).asstring := vlojas[9] ; qryresultado.parambyname('cdloja10').asstring := vlojas[10]; qryresultado.parambyname('cdloja11').asstring := vlojas[11]; qryresultado.parambyname('cdloja12').asstring := vlojas[12]; qryresultado.sql.add('order by cd_loja'); qryresultado.open; http://forum.imasters.com.br/public/style_emoticons/default/grin.gif Compartilhar este post Link para o post Compartilhar em outros sites