Bem Vindo Visitante Lista de Usuários

 Todos os Fórums
  Base de Dados

Enviar para a impressoraImprimir   

Subject Ajuda Query
Mensagem do Enviar e-mail Abrir o Perfil do usuário JULIOVIANA JULIOVIANA em 12/5/2017 as 09:15 hs
Local: SP   Registrada: 5/14/2010  Postagem: 15
Bom dia,

Pessoal preciso montar um relatório para mostrar todos os pedidos da SC6 e verificar se estão liberados na SC9, como posso fazer isso? Tentei fazer um JOIN mas ele trás somente os que estão liberados.

Mensagem do Enviar e-mail Abrir o Perfil do usuário SANCHESNET SANCHESNET em 12/5/2017 as 09:37 hs
Local: SP   Registrada: 11/23/2006  Postagem: 542
Troque o INNER JOIN por LEFT OUTER JOIN, que trará todos os pedidos, com NILL quando não houver correspondente na SC9.

Marcelo Sanches

Mensagem do Enviar e-mail Abrir o Perfil do usuário IT-TOTVS IT-TOTVS em 12/5/2017 as 09:55 hs
Local: SP   Registrada: 6/17/2011  Postagem: 31
Segue um exemplo sendo usado


SELECT SC5.C5_FILIAL, SC5.C5_NUM
FROM SC5010 SC5
     INNER JOIN SC9010 SC9 ON SC9.C9_PEDIDO = SC5.C5_NUM AND SC9.C9_FILIAL = SC5.C5_FILIAL AND SC9.D_E_L_E_T_ = ''
WHERE     SC5.D_E_L_E_T_ = ''
AND SC5.C5_FILIAL = '05'
AND SC5.C5_NUM = '049442'
AND SC9.C9_BLEST = ''
AND SC9.C9_BLCRED = ''
AND SC5.C5_NUM NOT IN (     SELECT SC9X.C9_PEDIDO
FROM SC9010 SC9X
WHERE     SC9X.D_E_L_E_T_ = ''
AND SC5.C5_FILIAL = SC9X.C9_FILIAL
AND SC5.C5_NUM = SC9X.C9_PEDIDO
AND ( SC9X.C9_BLCRED <> '' OR SC9X.C9_BLEST <> ''))

Mensagem do Enviar e-mail Abrir o Perfil do usuário JULIOVIANA JULIOVIANA em 12/5/2017 as 14:42 hs
Local: SP   Registrada: 5/14/2010  Postagem: 15
Sanchesnet fiz um teste aqui e não deu certo:




select
distinct

SC6.C6_NUM,
SC6.C6_CLI,
SC6.C6_PRODUTO,
SC6.C6_QTDVEN,
SC6.C6_ENTREG,
SC9.C9_BLCRED

from SC6010 AS SC6
LEFT OUTER JOIN SC9010 AS SC9 ON SC6.C6_NUM+SC6.C6_CLI = SC9.C9_PEDIDO+SC9.C9_CLIENTE

where

SC6.C6_ENTREG > '20171101' AND
SC9.C9_BLCRED <> '10' AND
SC6.D_E_L_E_T_ <> '*' AND
SC9.D_E_L_E_T_ <> '*'

ORDER BY C6_NUM

Mensagem do Enviar e-mail Abrir o Perfil do usuário JALBERTO JALBERTO em 12/5/2017 as 14:56 hs
Local: RS   Registrada: 8/20/2009  Postagem: 40
JULIOVIANA,

Essa parte da consulta ( SC9.C9_BLCRED <> '10' AND ) está "forçando" que tenha registro no SC9, então tem que tirar essa linha para que a consulta traga os Pedido que não tenham liberação.

Isso significa que quando retornar os registros, o campo C9_BLCRED vai estar com valor NULL, indicando que esse Pedido não está liberado.

Jorge Alberto

Mensagem do Enviar e-mail Abrir o Perfil do usuário JULIOVIANA JULIOVIANA em 12/6/2017 as 14:30 hs
Local: SP   Registrada: 5/14/2010  Postagem: 15
JALBERTO, poderia me auxiliar como fazer a query acima e conseguir filtrar tanto na SC6 quanto no SC9?

Obrigado!

Mensagem do Enviar e-mail Abrir o Perfil do usuário JALBERTO JALBERTO em 12/6/2017 as 15:03 hs
Local: RS   Registrada: 8/20/2009  Postagem: 40
JULIOVIANA,

Execute essa consulta e verifique os Pedidos com a coluna C9_BLCRED.

select
DISTINCT
SC6.C6_NUM,
SC6.C6_CLI,
SC6.C6_PRODUTO,
SC6.C6_QTDVEN,
SC6.C6_ENTREG,
SC9.C9_BLCRED
from SC6010 SC6
LEFT OUTER JOIN SC9010 SC9 ON ( SC6.C6_NUM = SC9.C9_PEDIDO AND SC6.C6_CLI = SC9.C9_CLIENTE AND SC9.D_E_L_E_T_ <> '*' )
where
SC6.C6_ENTREG > '20171101' AND
SC6.D_E_L_E_T_ <> '*'
ORDER BY SC6.C6_NUM

Jorge Alberto

Mensagem do Enviar e-mail Abrir o Perfil do usuário JULIOVIANA JULIOVIANA em 12/6/2017 as 15:26 hs
Local: SP   Registrada: 5/14/2010  Postagem: 15
Jorge, deu certo!

Valeu! Abs!!!


Mensagem do Enviar e-mail Abrir o Perfil do usuário SANCHESNET SANCHESNET em 12/6/2017 as 15:42 hs
Local: SP   Registrada: 11/23/2006  Postagem: 542
Não se esqueça de comparar as filiais no Join, conforme abaixo.

LEFT OUTER JOIN SC9010 SC9 ON ( SC6.C6_FILIAL = SC9.C9_FILIAL AND SC6.C6_NUM = SC9.C9_PEDIDO AND SC6.C6_CLI = SC9.C9_CLIENTE AND SC9.D_E_L_E_T_ <> '*' )

Marcelo Sanches

Mensagem do Enviar e-mail Abrir o Perfil do usuário JULIOVIANA JULIOVIANA em 12/7/2017 as 13:46 hs
Local: SP   Registrada: 5/14/2010  Postagem: 15
Jorge, Marcelo, por favor, qual comando posso usar para deixar em uma coluna se está na SC6 ou SC9?

Obrigado!

Mensagem do Enviar e-mail Abrir o Perfil do usuário JULIOVIANA JULIOVIANA em 12/7/2017 as 14:07 hs
Local: SP   Registrada: 5/14/2010  Postagem: 15
Eu fiz conforme abaixo e deu certo.

CASE
WHEN SC9.C9_BLCRED = '01' THEN 'Bloqueado Credito'
WHEN SC9.C9_BLCRED = '04' THEN 'Bloqueado Credito'
WHEN SC9.C9_BLCRED = '05' THEN 'Bloqueado Credito'
WHEN SC9.C9_BLCRED = '06' THEN 'Bloqueado Credito'
WHEN SC9.C9_BLCRED = '09' THEN 'Bloqueado Credito'
WHEN SC9.C9_BLCRED = '10' THEN 'FATURADO'
WHEN SC9.C9_BLCRED = '' THEN 'Lib Financ.'
ELSE 'Carteira' END AS "Sit pedido",

Valeu!

Mensagem do Enviar e-mail Abrir o Perfil do usuário JULIOVIANA JULIOVIANA em 12/7/2017 as 16:25 hs
Local: SP   Registrada: 5/14/2010  Postagem: 15
Jorge, Marcelo, na verdade não deu certo.

Com a query abaixo quando tenho um pedido liberado parcial no Financeiro ele duplica.

select
DISTINCT
SC6.C6_NUM,
SC6.C6_CLI,
SC6.C6_PRODUTO,
SC6.C6_QTDVEN,
SC6.C6_ENTREG,
SC9.C9_BLCRED,
CASE
WHEN SC9.C9_BLCRED = '01' THEN 'Bloqueado Credito'
WHEN SC9.C9_BLCRED = '04' THEN 'Bloqueado Credito'
WHEN SC9.C9_BLCRED = '05' THEN 'Bloqueado Credito'
WHEN SC9.C9_BLCRED = '06' THEN 'Bloqueado Credito'
WHEN SC9.C9_BLCRED = '09' THEN 'Bloqueado Credito'
WHEN SC9.C9_BLCRED = '10' THEN 'FATURADO'
WHEN SC9.C9_BLCRED = '' THEN 'Lib Financ.'
ELSE 'Carteira' END AS "Sit pedido"


from SC6010 SC6
LEFT OUTER JOIN SC9010 SC9 ON ( SC6.C6_NUM = SC9.C9_PEDIDO AND SC6.C6_CLI = SC9.C9_CLIENTE AND SC9.D_E_L_E_T_ <> '*' )
where
(SC6.C6_NUM = '076518') AND
--SC6.C6_ENTREG > '20171101' AND
SC6.D_E_L_E_T_ <> '*'
ORDER BY SC6.C6_NUM

*** Resultado da Query:****

C6_NUM     C6_PRODUTO     C6_QTDVEN     C9_BLCRED     Sit pedido
76518     C3F17003            6           Lib Financ.
76518     C3F17003            6     9     Bloqueado Credito
76518     CIN25001            6           Lib Financ.
76518     CIN25001            6     9     Bloqueado Credito
76518     CIN25037            5           Lib Financ.
76518     CIN25037            5     9     Bloqueado Credito
76518     CIN35071            4           Lib Financ.


Como posso fazer para tratar essa coluna C9_BLCRED quando ocorrer isso? Eu preciso que apareça conforme abaixo na tabela SC9.

C9_PEDIDO     C9_PRODUTO     C9_BLCRED
076518             CIN40073            
076518             CIN25037            
076518             CIN25001            
076518             CIN35071            09
076518             C3F17003            09

Muito obrigado!!!!!





Mensagem do Enviar e-mail Abrir o Perfil do usuário JALBERTO JALBERTO em 12/8/2017 as 08:20 hs
Local: RS   Registrada: 8/20/2009  Postagem: 40
JULIOVIANA,

Mas o SC6 são os itens do Pedido, assim como o SC9 as liberações ocorrem por Item.

Tem que colocar o Item na consulta, para saber qual o item que foi liberado.


Jorge Alberto

Mensagem do Enviar e-mail Abrir o Perfil do usuário JULIOVIANA JULIOVIANA em 12/8/2017 as 11:26 hs
Local: SP   Registrada: 5/14/2010  Postagem: 15
Jorge, bom dia!

Quando o pedido tem uma liberação parcial esta me trazendo uma linha da SC6 e uma linha da SC9, quando vou fazer uma soma tenho os valores duas vezes.





Mensagem do Enviar e-mail Abrir o Perfil do usuário JULIOVIANA JULIOVIANA em 12/8/2017 as 17:00 hs
Local: SP   Registrada: 5/14/2010  Postagem: 15
Jorge, consegui, ajustei o JOIN e deu certo! Obrigado pelo ajuda! Abs

Para participar do Fórum você precisa efetuar login primeiro
Caso você não esteja registrado registre-se para participar do fórum

 Mudar para Fórum