kzar 0 Denunciar post Postado Junho 8, 2013 Boa tarde pessoal. Estou tendo um problema com um select, se alguém puder me ajudar eu agradeço. O select é este: Select First 100 COB_ENV, dak, CONHEC_EMB, Dest_Cnpjcpf, Rem_Cnpjcpf, Id, Chave_Acesso, 'Filialcarg' As Filialcarga, Serie, Numero_Cte, Data_Emissao, Case Forpag When 0 Then 'C' When 1 Then 'F' End As Forpag, '0000000' As Pesotransp, Vprest_Vtprest, 0 As Basecalculo, 0 As Perc_Icms, 0 As Valor_Icms, 0 As Valor_Frete_Pv, Vprest_Vrec, 0 As Valor_Sec_Cat, 0 As Valor_Itr, 0 As Valor_Despacho, 0 As Valor_Pedagio, 0 As Valor_Ademe, 2 As Subs_Trib, '' As Nat_Operacao, Emit_Cnpj, Emit_Cnpj As Cnpj_EmbFrom CteWhere Dest_Cnpjcpf = :Dest_Cnpjcpf OR Rem_Cnpjcpf = :Dest_Cnpjcpf And Coalesce(Conhec_Emb,'') = 'N' And Coalesce(Dak,'') = 'S'Order By Cte.Id O que eu pretendo é selecionar os 100 primeiros registros desde que o cnpj do destinatário ou do remetente sejam iguais ao parâmetro passado (:Dest_Cnpjcpf) e os campos Conhec_Emb seja igual a N e o campo Dak seja igual a S. Isso por que quando esses 100 registros forem enviados o campo Conhec_Emb será atualizado para S. Então, o plano era que no próximo Select viessem outros 100 registros. Porém, todas as vezes vem os mesmos registro. E o mais estranho, para mim, o próprio Conhec_Emb vem já atualizado para S, só que uma das cláusulas do select pede justamente que não venham os registros que contém S. Estou com dificuldade em entender o que se passa, se puderem me ajudar agradeço. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Junho 8, 2013 Com OR e AND na mesma sentença WHERE use parenteses para ter certeza da seleção que se quer. Where (Dest_Cnpjcpf = :Dest_Cnpjcpf OR Rem_Cnpjcpf = :Dest_Cnpjcpf) And Coalesce(Conhec_Emb,'') = 'N' And Coalesce(Dak,'') = 'S' Compartilhar este post Link para o post Compartilhar em outros sites
kzar 0 Denunciar post Postado Junho 10, 2013 Ok, funcionou. Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites