PERGUNTAS E RESPOSTAS
 
Bem Vindo, Visitante  Todos os Fórums
  ADVPL
Enviar para a impressoraImprimir  Enviar e-mail para um amigoEnviar Para um Amigo
Precisa estar Logado

Subject Assunto:
Ajuda com Query SQL
Versão:
12.1.17
Plataforma:
Microsoft
Complemento:
DB:
SQL Server
Complemento:
Capturar.JPG (anexo)
LinkedIn
Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário 92FLEURY 92FLEURY em 07/01/2022, 14:08 h
Local: SP  Registro: 02/12/2021  Postagens: 10
Boa tarde pessoal, possuo essa Query para ter uma visão geral por PV, se há SOC, Ped Compra, e se o Item chegou ou não. O Problema, é que quando não há SOC e tem pedido de compra, não está trazendo para a consulta. Podem dar uma força? Valeu!


select distinct
     C5.C5_NUM ‘NUM PV‘,
     Convert(varchar,Convert(Datetime,C5.C5_EMISSAO),103) ‘DT EMISSÃO‘,
     C1.C1_NUM ‘NUM SOC‘,
     C1.C1_ITEM ‘ITEM SOC‘,
     C1.C1_DESCRI ‘DESC SOC‘,
     C7.C7_NUM ‘NUMPED COMPRA‘,
     C7.C7_ZZPV ‘NUM PV PEDCOMPRA‘,
     C7.C7_QUANT ‘QUANTIDADE‘,
     C7.C7_PRODUTO ‘COD PRODUTO‘,
     C7.C7_DESCRI ‘DESCRIÇÃO‘,
     Convert(varchar,Convert(Datetime,C7.C7_DATPRF),103) ‘DT ENTREGA‘,
     A2.A2_NREDUZ ‘FORNECEDOR‘,
     D1.D1_DOC ‘NF DE ENTRADA‘,
     C6_NOTA ‘NF‘ ,CASE WHEN C6_NOTA = ‘ ‘ THEN ‘N FATURADO‘ WHEN C6_NOTA <> ‘ ‘ THEN ‘FATURADO‘ END AS ‘STATUS‘

from
     SC5010 C5 WITH(NOLOCK)
left join
     SC2010 C2 WITH(NOLOCK) ON
     C2.D_E_L_E_T_ = ‘‘
     and C2.C2_FILIAL = ‘04‘
     and C2.C2_NUM = C5.C5_NUM
left join
     SC1010 C1 WITH(NOLOCK) ON
     C1.D_E_L_E_T_ = ‘‘
     and C1_FILIAL = ‘04‘
     and SUBSTRING(C1.C1_ZZPV,1,6) = C5.C5_NUM
left join
     SC7010 C7 WITH(NOLOCK) ON
     C7.D_E_L_E_T_ = ‘‘
     and C7_FILIAL = ‘04‘
     and C7.C7_NUMSC = C1.C1_NUM
      and C7.C7_PRODUTO = C1_PRODUTO
left join
     SA2010 A2 WITH(NOLOCK) ON
      A2.D_E_L_E_T_=‘‘
      and C7.C7_FORNECE = A2_COD
left join
     SD1010 D1 WITH(NOLOCK) ON
     D1.D_E_L_E_T_ = ‘‘
     and D1_FILIAL = ‘04‘ --
     and D1.D1_COD = C7.C7_PRODUTO
      and C7_NUM = D1.D1_PEDIDO
left join
     SC6010 C6 WITH(NOLOCK) ON
      C6.D_E_L_E_T_=‘‘
      and C5_NUM = C6_NUM

where
     C5.D_E_L_E_T_ = ‘‘
     and C5_FILIAL = ‘04‘ -- filial da tabela
     and C5.C5_EMISSAO >= 20210701
      and C5_TIPO = ‘N‘
      and (C5_ZZTIPOE =‘B‘ or C5_ZZTIPOE =‘M‘ or C5_ZZTIPOE =‘O‘ or C5_ZZTIPOE =‘P‘ or
      C5_ZZTIPOE =‘T‘ or C5_ZZTIPOE =‘W‘ or C5_ZZTIPOE =‘X‘ or C5_ZZTIPOE =‘Z‘)
     
order by
     C5_NUM
     

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário EMERSON.EN EMERSON.EN em 07/01/2022, 15:57 h
Local: SP  Registro: 20/08/2010  Postagens: 617
não encontra porque a query está relacionando o pedido de compra à solicitação de compra.
faça o relacionamento com o pedido de venda.


select distinct
     C5.C5_NUM ‘NUM PV‘,
     Convert(varchar,Convert(Datetime,C5.C5_EMISSAO),103) ‘DT EMISSÃO‘,
     C1.C1_NUM ‘NUM SOC‘,
     C1.C1_ITEM ‘ITEM SOC‘,
     C1.C1_DESCRI ‘DESC SOC‘,
     C7.C7_NUM ‘NUMPED COMPRA‘,
     C7.C7_ZZPV ‘NUM PV PEDCOMPRA‘,
     C7.C7_QUANT ‘QUANTIDADE‘,
     C7.C7_PRODUTO ‘COD PRODUTO‘,
     C7.C7_DESCRI ‘DESCRIÇÃO‘,
     Convert(varchar,Convert(Datetime,C7.C7_DATPRF),103) ‘DT ENTREGA‘,
     A2.A2_NREDUZ ‘FORNECEDOR‘,
     D1.D1_DOC ‘NF DE ENTRADA‘,
     C6.C6_NOTA ‘NF‘,
      CASE WHEN C6.C6_NOTA = ‘ ‘ THEN ‘N FATURADO‘ ELSE ‘FATURADO‘ END ‘STATUS‘
from
     SC5010 C5 WITH(NOLOCK)
inner join -- RELACIONAMENTO COM OS ITENS LOGO APOS A TABELA DE PV
     SC6010 C6 WITH(NOLOCK) ON
     C6.D_E_L_E_T_=‘‘
      and C6.C6_FILIAL = C5.C5_FILIAL -- ADICIONEI A FILIAL
     and C6.C6_NUM = C5.C5_NUM
left join
     SC2010 C2 WITH(NOLOCK) ON
     C2.D_E_L_E_T_ = ‘‘
     and C2.C2_FILIAL = ‘04‘
     and C2.C2_NUM = C5.C5_NUM
left join
     SC1010 C1 WITH(NOLOCK) ON
     C1.D_E_L_E_T_ = ‘‘
     and C1.C1_FILIAL = ‘04‘
     and LEFT(C1.C1_ZZPV,6) = C5.C5_NUM
      and C1.C1_PRODUTO = C6.C6_PRODUTO -- DEVERIA VINCULAR O PRODUTO, NÃO?
left join
     SC7010 C7 WITH(NOLOCK) ON
     C7.D_E_L_E_T_ = ‘‘
     and C7_FILIAL = ‘04‘
     and LEFT(C7.C7_ZZPV,6) = C6.C6_NUM -- RELACIONO COM O ITEM DO PEDIDO DE VENDA
     and C7.C7_PRODUTO = C6.C6_PRODUTO -- (NAO COM O ITEM DA SOLICITAÇÃO DE COMPRA)
left join
     SA2010 A2 WITH(NOLOCK) ON
     A2.D_E_L_E_T_=‘‘
     and A2.A2_FILIAL = ‘04‘ -- ADICIONEI A FILIAL
     and A2.A2_COD = C7.C7_FORNECE
     and A2.A2_LOJA = C7.C7_LOJA
left join
     SD1010 D1 WITH(NOLOCK) ON
     D1.D_E_L_E_T_ = ‘‘
     and D1.D1_FILIAL = ‘04‘
     and D1.D1_COD = C7.C7_PRODUTO
     and D1.D1_PEDIDO = C7.C7_NUM
where
     C5.D_E_L_E_T_ = ‘‘
     and C5.C5_FILIAL = ‘04‘ -- filial da tabela
     and C5.C5_EMISSAO >= ‘20210701‘
     and C5.C5_TIPO = ‘N‘
     and (C5.C5_ZZTIPOE =‘B‘ or C5.C5_ZZTIPOE = ‘M‘ or C5.C5_ZZTIPOE = ‘O‘ or C5.C5_ZZTIPOE =‘P‘ or
     C5.C5_ZZTIPOE = ‘T‘ or C5.C5_ZZTIPOE = ‘W‘ or C5.C5_ZZTIPOE = ‘X‘ or C5.C5_ZZTIPOE = ‘Z‘)
order by
     C5.C5_NUM



Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário 92FLEURY 92FLEURY em 10/01/2022, 11:50 h
Local: SP  Registro: 02/12/2021  Postagens: 10
Bom dia, tudo bem? Obrigado pela resposta.
A minha query está trazendo 4400 registros validados de todas as Socs que tem para tal PV e todos os itens.

No seu exemplo:
Se eu vincular o produto, cai para 520 registros e se não vincular, na sua consulta vai para 10698 registros com varias duplicidades, conforme anexo.

Alguma sugestão?



Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário EMERSON.EN EMERSON.EN em 10/01/2022, 12:35 h
Local: SP  Registro: 20/08/2010  Postagens: 617
select distinct
     C5.C5_NUM ‘NUM PV‘,
     Convert(varchar,Convert(Datetime,C5.C5_EMISSAO),103) ‘DT EMISSÃO‘,
     COALESCE(C1.C1_NUM,‘‘) ‘NUM SOC‘,
     COALESCE(C1.C1_ITEM, ‘‘) ‘ITEM SOC‘,
     COALESCE(C1.C1_DESCRI,‘‘) ‘DESC SOC‘,
     COALESCE(C7.C7_NUM, C7X.C7_NUM) ‘NUMPED COMPRA‘,
     COALESCE(C7.C7_ZZPVM, C7X.C7_ZZPV) ‘NUM PV PEDCOMPRA‘,
     COALESCE(C7.C7_QUANT, C7X.C7_QUANT) ‘QUANTIDADE‘,
     COALESCE(C7.C7_PRODUTO, C7X.C7_PRODUTO) ‘COD PRODUTO‘,
     COALESCE(C7.C7_DESCRI, C7X.C7_DESCRI) ‘DESCRIÇÃO‘,
     Convert(varchar,Convert(Datetime, COALESCE(C7.C7_DATPRF, C7X.C7_DATPRF)),103) ‘DT ENTREGA‘,
     A2.A2_NREDUZ ‘FORNECEDOR‘,
     D1.D1_DOC ‘NF DE ENTRADA‘,
     C6.C6_NOTA ‘NF‘,
     CASE WHEN C6.C6_NOTA = ‘ ‘ THEN ‘N FATURADO‘ ELSE ‘FATURADO‘ END ‘STATUS‘
from
     SC5010 C5 WITH(NOLOCK)
inner join -- RELACIONAMENTO COM OS ITENS LOGO APOS A TABELA DE PV
     SC6010 C6 WITH(NOLOCK) ON
     C6.D_E_L_E_T_=‘‘
     and C6.C6_FILIAL = C5.C5_FILIAL -- ADICIONEI A FILIAL
     and C6.C6_NUM = C5.C5_NUM
left join
     SC2010 C2 WITH(NOLOCK) ON
     C2.D_E_L_E_T_ = ‘‘
     and C2.C2_FILIAL = ‘04‘
     and C2.C2_NUM = C5.C5_NUM
left join
     SC1010 C1 WITH(NOLOCK) ON
     C1.D_E_L_E_T_ = ‘‘
     and C1.C1_FILIAL = ‘04‘
     and LEFT(C1.C1_ZZPV,6) = C5.C5_NUM
     and C1.C1_PRODUTO = C6.C6_PRODUTO -- DEVERIA VINCULAR O PRODUTO, NÃO?
left join
     SC7010 C7 WITH(NOLOCK) ON
     C7.D_E_L_E_T_ = ‘‘
     and C7.C7_FILIAL = ‘04‘
     and C7.C7_NUMSC = C1.C1_NUM -- RELACIONO COM A SOLICITAÇÃO DE COMPRA
     and C7.C7_PRODUTO = C1.C1_PRODUTO
left join
     SC7010 C7X WITH(NOLOCK) ON
     C1.C1_NUM IS NULL -- SE NÃO HÁ SOLICITAÇÃO DE COMPRA
     and C7X.D_E_L_E_T_ = ‘‘
     and C7X.C7_FILIAL = ‘04‘
     and LEFT(C7X.C7_ZZPV,6) = C6.C6_NUM -- RELACIONO COM O PEDIDO DE VENDA
     and C7X.C7_PRODUTO = C6.C6_PRODUTO
left join
     SA2010 A2 WITH(NOLOCK) ON
     A2.D_E_L_E_T_=‘‘
     and A2.A2_FILIAL = ‘04‘ -- ADICIONEI A FILIAL
     and A2.A2_COD = C7.C7_FORNECE
     and A2.A2_LOJA = C7.C7_LOJA
left join
     SD1010 D1 WITH(NOLOCK) ON
     D1.D_E_L_E_T_ = ‘‘
     and D1.D1_FILIAL = ‘04‘
     and D1.D1_COD = C7.C7_PRODUTO
     and D1.D1_PEDIDO = C7.C7_NUM
where
     C5.D_E_L_E_T_ = ‘‘
     and C5.C5_FILIAL = ‘04‘ -- filial da tabela
     and C5.C5_EMISSAO >= ‘20210701‘
     and C5.C5_TIPO = ‘N‘
     and (C5.C5_ZZTIPOE =‘B‘ or C5.C5_ZZTIPOE = ‘M‘ or C5.C5_ZZTIPOE = ‘O‘ or C5.C5_ZZTIPOE =‘P‘ or
     C5.C5_ZZTIPOE = ‘T‘ or C5.C5_ZZTIPOE = ‘W‘ or C5.C5_ZZTIPOE = ‘X‘ or C5.C5_ZZTIPOE = ‘Z‘)
order by
     C5.C5_NUM

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário 92FLEURY 92FLEURY em 10/01/2022, 15:54 h
Local: SP  Registro: 02/12/2021  Postagens: 10
Entendi o que fez, mas por algum motivo se eu tenho um item de uma PV, no meu pedido de compra que não teve SOC, a consulta não está trazendo esse item
Um item que não possui informação no campo C7_NUMSC por exemplo
Veja o anexo por gentileza:
O item 0001 está trazendo
O item 0002 não está

Obrigado pelo seu tempo..

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário EMERSON.EN EMERSON.EN em 11/01/2022, 10:18 h
Local: SP  Registro: 20/08/2010  Postagens: 617
que anexo?

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário 92FLEURY 92FLEURY em 11/01/2022, 12:13 h
Local: SP  Registro: 02/12/2021  Postagens: 10
Bom dia!
Anexo enviado

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário 92FLEURY 92FLEURY em 12/01/2022, 09:57 h
Local: SP  Registro: 02/12/2021  Postagens: 10
Bom dia, dessa forma eu consigo buscar Por PV, quais possuem OP‘s, não possui SOC e possui PEDIDO de COMPRA:

select distinct
     C5.C5_NUM ‘NUM PV‘,
     Convert(varchar,Convert(Datetime,C5.C5_EMISSAO),103) ‘DT EMISSÃO‘,
     C7.C7_ITEM ‘ITEM PC‘,
     C7.C7_NUM ‘NUMPED COMPRA‘,
     C7.C7_ZZPV ‘NUM PV PEDCOMPRA‘,
     C7.C7_QUANT ‘QUANTIDADE‘,
     C7.C7_PRODUTO ‘COD PRODUTO‘,
     C7.C7_DESCRI ‘DESCRIÇÃO‘,
      Convert(varchar,Convert(Datetime,C7.C7_DATPRF),103) ‘DT ENTREGA‘
from
     SC5010 C5 WITH(NOLOCK)
inner join
      SC6010 C6 WITH(NOLOCK) ON
     C6.D_E_L_E_T_=‘‘
     and C6.C6_FILIAL = C5.C5_FILIAL
     and C6.C6_NUM = C5.C5_NUM
left join
     SC2010 C2 WITH(NOLOCK) ON
     C2.D_E_L_E_T_ = ‘‘
     and C2.C2_FILIAL = ‘04‘
     and C2.C2_NUM = C5.C5_NUM
left join
     SC7010 C7 WITH(NOLOCK) ON
     C7.D_E_L_E_T_ = ‘‘
     and C7_FILIAL = ‘04‘
     and C7.C7_NUMSC =‘‘
     and SUBSTRING(C7_ZZPV,1,6) = C5_NUM

where
     C5.D_E_L_E_T_ = ‘‘
     and C7_NUM <> ‘‘
     and C5_FILIAL = ‘04‘ -- filial da tabela
     and C5.C5_EMISSAO >= 20210701
     and C5_TIPO = ‘N‘
     and (C5_ZZTIPOE =‘B‘ or C5_ZZTIPOE =‘M‘ or C5_ZZTIPOE =‘O‘ or C5_ZZTIPOE =‘P‘ or
      C5_ZZTIPOE =‘T‘ or C5_ZZTIPOE =‘W‘ or C5_ZZTIPOE =‘X‘ or C5_ZZTIPOE =‘Z‘)
     
order by
     C7_NUM

Só não consegui fazer rodar em uma única Query..
     

Para postar no Fórum você precisa efetuar o seu login ou se registrar

 Mudar para Fórum

 

 

 
 
   
Pagina Principal Shopping PROTHEUS Tire suas duvidas Vagas Microsiga em todo Brasil Aprofunde seus conhecimentos Noticias Online Fale Conosco Pagina Principal