Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rafa-martin

o q posso fazer nessa query?

Recommended Posts

galera, tenho essa query:

 

SELECTITGERA_PEDREQ.CD_FILIAL,ITGERA_PEDREQ.CD_GERAPED,ITGERA_PEDREQ.DT_EMISSAO,PROD_CONSUMO.CD_PRODCONS,PROD_CONSUMO.DS_PRODCONS,GERA_PEDREQ.CD_FORNEC,PESSOAFJ.DS_PFJ,GERA_PEDREQ.CD_MEIOCOBR,MEIOCOBR.DS_MEIOCOBR,GERA_PEDREQ.CD_CPGTO,CONDPAGTO.DS_CPGTOFROMITGERA_PEDREQINNER JOIN PROD_CONSUMO ONPROD_CONSUMO.CD_PRODCONS = ITGERA_PEDREQ.CD_PRODCONSINNER JOIN REQUISICAO ONREQUISICAO.CD_GERAPED = ITGERA_PEDREQ.CD_GERAPEDINNER JOIN GERA_PEDREQ ONGERA_PEDREQ.CD_GERAPED = ITGERA_PEDREQ.CD_GERAPED ANDGERA_PEDREQ.CD_GERAPED = REQUISICAO.CD_GERAPEDINNER JOIN PESSOAFJ ONPESSOAFJ.CD_PFJ = GERA_PEDREQ.CD_FORNECINNER JOIN CONDPAGTO ONCONDPAGTO.CD_CPGTO = GERA_PEDREQ.CD_CPGTOINNER JOIN MEIOCOBR ONMEIOCOBR.CD_MEIOCOBR = GERA_PEDREQ.CD_MEIOCOBRWHEREITGERA_PEDREQ.CD_GERAPED = 22GROUP BYITGERA_PEDREQ.CD_FILIAL,ITGERA_PEDREQ.CD_GERAPED,ITGERA_PEDREQ.DT_EMISSAO,PROD_CONSUMO.CD_PRODCONS,PROD_CONSUMO.DS_PRODCONS,GERA_PEDREQ.CD_FORNEC,PESSOAFJ.DS_PFJ,GERA_PEDREQ.CD_MEIOCOBR,MEIOCOBR.DS_MEIOCOBR,GERA_PEDREQ.CD_CPGTO,CONDPAGTO.DS_CPGTOORDER BYITGERA_PEDREQ.CD_GERAPED
traz dois registros certinho, como tem q ser. só que se eu colocar essa linha no select e no group by

 

REQUISICAO.CD_REQUISICAO

 

está trazendo mais duas os vezes os registros. ou seja quatro linhas, sendo q tem q trazer duas. eu já olhei a estrura dessa tabela de requisição e está tudo ok

 

eu acho q pode ser... tipo eu tenho duas requições cadastradas para um mesmo pedido. assim:

 

cd_requisicao cd_geraped

19 22

20 22

 

e aí quando tento agrupar naum adianta.

 

mesmo assim antes de colocar o campo requisicao ele já traz duas linhas, como tem q ser. naum sei pq q traz quatro linhas (repetindo as duas existentes) já que existe apenas duas requisções q é a 19 e 20

 

como posso resolver isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

galera, tenho essa query:

 

SELECTITGERA_PEDREQ.CD_FILIAL,ITGERA_PEDREQ.CD_GERAPED,ITGERA_PEDREQ.DT_EMISSAO,PROD_CONSUMO.CD_PRODCONS,PROD_CONSUMO.DS_PRODCONS,GERA_PEDREQ.CD_FORNEC,PESSOAFJ.DS_PFJ,GERA_PEDREQ.CD_MEIOCOBR,MEIOCOBR.DS_MEIOCOBR,GERA_PEDREQ.CD_CPGTO,CONDPAGTO.DS_CPGTOFROMITGERA_PEDREQINNER JOIN PROD_CONSUMO ONPROD_CONSUMO.CD_PRODCONS = ITGERA_PEDREQ.CD_PRODCONSINNER JOIN REQUISICAO ONREQUISICAO.CD_GERAPED = ITGERA_PEDREQ.CD_GERAPEDINNER JOIN GERA_PEDREQ ONGERA_PEDREQ.CD_GERAPED = ITGERA_PEDREQ.CD_GERAPED ANDGERA_PEDREQ.CD_GERAPED = REQUISICAO.CD_GERAPEDINNER JOIN PESSOAFJ ONPESSOAFJ.CD_PFJ = GERA_PEDREQ.CD_FORNECINNER JOIN CONDPAGTO ONCONDPAGTO.CD_CPGTO = GERA_PEDREQ.CD_CPGTOINNER JOIN MEIOCOBR ONMEIOCOBR.CD_MEIOCOBR = GERA_PEDREQ.CD_MEIOCOBRWHEREITGERA_PEDREQ.CD_GERAPED = 22GROUP BYITGERA_PEDREQ.CD_FILIAL,ITGERA_PEDREQ.CD_GERAPED,ITGERA_PEDREQ.DT_EMISSAO,PROD_CONSUMO.CD_PRODCONS,PROD_CONSUMO.DS_PRODCONS,GERA_PEDREQ.CD_FORNEC,PESSOAFJ.DS_PFJ,GERA_PEDREQ.CD_MEIOCOBR,MEIOCOBR.DS_MEIOCOBR,GERA_PEDREQ.CD_CPGTO,CONDPAGTO.DS_CPGTOORDER BYITGERA_PEDREQ.CD_GERAPED
traz dois registros certinho, como tem q ser. só que se eu colocar essa linha no select e no group by

 

REQUISICAO.CD_REQUISICAO

 

está trazendo mais duas os vezes os registros. ou seja quatro linhas, sendo q tem q trazer duas. eu já olhei a estrura dessa tabela de requisição e está tudo ok

 

eu acho q pode ser... tipo eu tenho duas requições cadastradas para um mesmo pedido. assim:

 

cd_requisicao cd_geraped

19 22

20 22

 

e aí quando tento agrupar naum adianta.

 

mesmo assim antes de colocar o campo requisicao ele já traz duas linhas, como tem q ser. naum sei pq q traz quatro linhas (repetindo as duas existentes) já que existe apenas duas requisções q é a 19 e 20

 

como posso resolver isso?

Camarada não tive tempo de analisar seu problema mas vendo por alto, sugiro:

 

Já tentou colocar no select MAX(REQUISICAO.CD_REQUISICAO) e não colocar no GROUP BY?

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

mais se eu colocar o select max (cd_requisicao) ele irá me trazer o ultimo id da tabela requisição. o q isso adiantaria? naum entendi o q você disse.

Camarada,Como não tenho acesso ao seu ambinte e estrutura de dados fica dificil opinar mas vamos tentar.você testou o que eu sugeri?
SELECT[b]MAX(REQUISICAO.CD_REQUISICAO)[/b],ITGERA_PEDREQ.CD_FILIAL,ITGERA_PEDREQ.CD_GERAPED,ITGERA_PEDREQ.DT_EMISSAO,
E não colocar [/b]REQUISICAO.CD_REQUISICAO[/b] no GROP BY!Por favor efetei o teste indicado e post o resultado. Caso o teste funcione tentarei explicar-lhe o pq.Faço o teste e poste o resultado para podermos continuar a discussão.t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

aconteceu o q eu te disse. ele não trouxe mais as quatro linhas, trouxe apenas duas como tinha q trazer, porém é um único registro, ou seja, teria q trazer apenas uma linha.e ele trouxe o maior id da tabela requisção, ou seja, ele trouxe duas linhas, com o id da requisição igual a 20. teria q trazer 19 e 20.aconteceu o q eu te disse.pq acontece isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

aconteceu o q eu te disse. ele não trouxe mais as quatro linhas, trouxe apenas duas como tinha q trazer, porém é um único registro, ou seja, teria q trazer apenas uma linha.e ele trouxe o maior id da tabela requisção, ou seja, ele trouxe duas linhas, com o id da requisição igual a 20. teria q trazer 19 e 20.aconteceu o q eu te disse.pq acontece isso?

Camara isto é GROUP BY definido erradamente.Teria como você postar o resulta do select com erro e o relsulta que você deseja.Talvez na lista de campos selecionados:ITGERA_PEDREQ.CD_FILIAL,ITGERA_PEDREQ.CD_GERAPED,ITGERA_PEDREQ.DT_EMISSAO,PROD_CONSUMO.CD_PRODCONS,PROD_CONSUMO.DS_PRODCONS,GERA_PEDREQ.CD_FORNEC,PESSOAFJ.DS_PFJ,GERA_PEDREQ.CD_MEIOCOBR,MEIOCOBR.DS_MEIOCOBR,GERA_PEDREQ.CD_CPGTO,CONDPAGTO.DS_CPGTOEles sejam diferntes msm e estão agrupados corretamente. Talvez você terá de utilizar o MAX em outros campo ou msm diminiri o número de campo no seu GROUP BY.Post o resultado do select com erro e o resultado como você deseja mas com todo os campos.O erro é besta mas como não tenho uma visão gera da estrutura de seu bd fica dificil opinar.Só com sugestão tente fazer o select com um campo depois com dois depopis com três.. dai talvez você percebe que o campo que esta desbeiçado o seu select. t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.