- Este tópico contém 2 respostas, 3 vozes e foi atualizado pela última vez 17 anos, 3 meses atrás por
DanielB.
-
AutorPosts
-
15 de dezembro de 2008 às 11:50 pm #84290
ericclauber
ParticipanteBoa tarde!
Estou querendo puxar os produtos de uma tabela1 com condiçao que tenham movimento em determinado periodo de tabela2.
No seguinte select da certo, mas me traz os produtos repedidamente, pois tem varias vezes na tabela2.
select pcprodut.codprod,pcprodut.descricao,pcprodut.embalagem,pcprodut.qtunit,
pcprodut.unidade,pcprodut.qtunitcx,
pcprodut.unidademaster,pcprodut.codauxiliar,pcprodut.codauxiliar2 from pcprodut,pcmov where pcprodut.codprod=pcmov.codprod
and pcmov.dtmov between ’01/01/2008′ and ’31/12/2008′ and pcprodut.codauxiliar is null or pcprodut.codauxiliar2 is nullNeste select so estou querendo eliminar a repetiçao dos produtos.
Aguardo retorno, obrigado.[/b]
15 de dezembro de 2008 às 11:58 pm #84291Rodrigo Mesquita
Participantetente assim
select pcprodut.codprod,
pcprodut.descricao,
pcprodut.embalagem,
pcprodut.qtunit,
pcprodut.unidade,
pcprodut.qtunitcx,
pcprodut.unidademaster,
pcprodut.codauxiliar,
pcprodut.codauxiliar2
from pcprodut
where pcprodut.codprod in
(select distinct (cod_prod)
from pcmov
where pcmov.dtmov between ’01/01/2008′ and ’31/12/2008′)
and pcprodut.codauxiliar is null or pcprodut.codauxiliar2 is null16 de dezembro de 2008 às 4:48 pm #84298DanielB
Participanteel primer problema que veo en este select es
select pcprodut.codprod,pcprodut.descricao,pcprodut.embalagem,pcprodut.qtunit,
pcprodut.unidade,pcprodut.qtunitcx,
pcprodut.unidademaster,pcprodut.codauxiliar,pcprodut.codauxiliar2 from pcprodut,pcmov where pcprodut.codprod=pcmov.codprod
and pcmov.dtmov between ’01/01/2008′ and ’31/12/2008′ and pcprodut.codauxiliar is null or pcprodut.codauxiliar2 is nullese or con un and
lo otro es repeticion pues si hay mas de un mov para un producto en ese periodo se repiten
aun sin entender el motivo del or o sera que se quizo escribir
(pcprodut.codauxiliar is null or pcprodut.codauxiliar2 is null ) que uno u otro campo sea nulo?dejando eso de lado…
select pcprodut.codprod,pcprodut.descricao,pcprodut.embalagem,pcprodut.qtunit,
pcprodut.unidade,pcprodut.qtunitcx,
pcprodut.unidademaster,pcprodut.codauxiliar,pcprodut.codauxiliar2
from pcprodut
where (pcprodut.codauxiliar is null or pcprodut.codauxiliar2 is null )
and exists (select 1 from pcmov where pcprodut.codprod=pcmov.codprod
and pcmov.dtmov between ’01/01/2008′ and ’31/12/2008′ )es bastante mas eficiente
-
AutorPosts
- Você deve fazer login para responder a este tópico.